我将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