我將Graph(在我的Graph類中)存儲爲: Dictionary< Vertex<T>, List<Vertex<T>> _edges
。鄰接列表圖實現 - 可重用類
我應該如何存儲邊緣的重量,顏色等屬性? (例如爲WeightedGraphs
,ColoredGraphs
等)創建通用Graph類我想添加IGraph
接口(它將包含像Traverse
,InsertEdge
等通用圖形操作)作爲Graph類中的屬性。
但是我不知道如何處理邊緣屬性。如果我實現IGraph
接口爲ColoredGraph
我想要有顏色屬性的頂點,爲IGraph
實現爲WeightedGraph
我想擁有重量屬性等。我也想聽聽你如何實現Graph作爲鄰接列表。
PS:這不是學校功課
我曾經想過Edge類,但是當我定義重量,顏色等時,某些值在某些情況下可能未被使用(是不是「代碼設計失敗」?)是否有其他方法來實現它? – fex 2013-02-19 21:57:14
@fex不是真的,如果有這種情況下,你可以預見,然後讓他們的getter和setter多態,你couold想想IGraph,也可以有IVertex,IEdge儘可能多,所有這些只是爲了讓你的課程脫鉤。 – 2013-02-19 22:24:11