Adjacency List Graph implementation - Reusable classes
<p>I'm storing Graph (in my Graph class) as an:
<code>Dictionary&lt; Vertex&lt;T&gt;, List&lt;Vertex&lt;T&gt;&gt; _edges</code>. </p>

<p>How should I store properties like weight, color etc. of edge? (to make it reusable for instance for <code>WeightedGraphs</code>, <code>ColoredGraphs</code> etc.) To create generic Graph class I thought about adding <code>IGraph</code> interface (which will contain common Graph operations like <code>Traverse</code>, <code>InsertEdge</code> etc.) as property in Graph class.</p>

<p>However I have no idea how to deal with edge properties. If I implement <code>IGraph</code> interface as <code>ColoredGraph</code> I'd like to have Vertex with color property, for <code>IGraph</code> implemented as <code>WeightedGraph</code> I'd like to have weight property and so on. I'd also like to hear how would you implement Graph as adjacency list.</p>

<p>ps: it's not school homework</p>
