title: C Directed Graph Implementation Choice
body: <p>Welcome <em>mon amie</em>,</p>
  
  <p>In some homework of mine, I feel the need to use the Graph ADT. However, I'd like to have it, how do I say, <em>generic</em>. That is to say, I want to store in it whatever I fancy.</p>
  
  <p>The issue I'm facing, has to do with complexity. <strong>What data structure should I use to represent the set of nodes?</strong> I forgot to say that I already decided to use the <strong>Adjacency list technic</strong>.</p>
  
  <p>Generally, textbooks mention a linked list, but, it is to my understanding that whenever a linked list is useful and we need to perform searches, a <strong>tree is better</strong>.</p>
  
  <p>But then again, what we need is to associate a node with its list of adjacent nodes, <strong>so what about an hash table?</strong></p>
  
  <p>Can you help me decide in which data structure (linked list, tree, hash table) should i store the nodes?</p>