I know it's already to late, but I represent adjacency list as:
// global variable
vector<int> adjacency_list[MAX_NUMBER_OF_NODES]
So if nodes X and Y are neighbours (in undirected graph) , then you would do the following:
adjacency_list[X].push_back(Y);
adjacency_list[Y].push_back(X);
:)
Read more… (38 words)