title: Graph incidence list implementation
body: <p>I'm considering graph data structure implementations and am looking at the "incidence list" representation. There is a brief description of it here:</p>
  
  <p><a href="http://en.wikipedia.org/wiki/Incidence_list" rel="nofollow">Incidence list</a></p>
  
  <p>So each vertex in the graph stores a list of those edges upon which it is incident.</p>
  
  <p>Given that my graph is a directed graph, I'm not very clear from this description on a couple of points:</p>
  
  <ol>
  <li>Does the graph itself also store a list of all edges?</li>
  <li>Do vertices only store outgoing edges, or incoming and outgoing?</li>
  <li>If both, are they in separate lists?</li>
  </ol>
  
  <p>I'm quite familiar with the other graph representations (adjacency list, adjacency matrix, edge list, incidence matrix), so this isn't a question about graph implementations in general, just this particular one.</p>
  
  <p>Any pointers would be much appreciated.</p>