Which graph representation should I use?
Adjacency list, adjacency matrix, or incidence matrix -- the right choice is entirely about which operation you need to be cheap.
Need to list a vertex's neighbors, or store a huge sparse graph compactly? Adjacency list. Need a single-pair "are these two adjacent" lookup in constant time, or to use matrix powers to count walks? Adjacency matrix. Either way, weigh the choice against how many vertices and edges the graph actually has -- an adjacency list costs O(V+E) space; an adjacency matrix always costs O(V^2), cheap only when the graph is dense.
Adjacency list
Adjacency / incidence matrix
Three different ways to store the same graph in a computer: a list of each vertex's neighbors, a matrix of who's adjacent to whom, or a matrix of which vertex touches which edge.
Choosing by cost
Section
Big-O in terms of V and E
Point table
Graph settings
Calculator