I\'m currently following Steve Yegge\'s advice on preparing for a technical programming interview: http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html
In
Another good resource: Khan Academy - "Representing Graphs"
Besides adjacency list and adjacency matrix, they list "edge lists" as a 3rd type of graph representation. An edge list could be interpreted as a list of "edge objects" like those in Thomas's "objects and pointers" answer.
Advantage: We can store more information about the edge (mentioned by Michal)
Disadvantage: It's a very slow data structure to work with:
e = number of edges