邻接列表图实现-可重用类

本文关键字:实现 列表 | 更新日期: 2023-09-27 18:00:06

我将Graph(在Graph类中)存储为:CCD_ 1。

我应该如何存储边缘的重量、颜色等属性?(使其可重用,例如用于WeightedGraphsColoredGraphs等)为了创建通用Graph类,我考虑在Graph类中添加IGraph接口(它将包含常见的Graph操作,如TraverseInsertEdge等)作为属性。

但是,我不知道如何处理边缘属性。如果我将IGraph接口实现为ColoredGraph,我希望Vertex具有颜色属性,对于将IGraph实现为Dictionary< Vertex<T>, List<Vertex<T>> _edges0,我希望具有权重属性等等。我还想听听如何将Graph实现为邻接列表。

ps:这不是学校作业

邻接列表图实现-可重用类

Edge ={2 Vertices = {Adjacent Vertices per a vertex}, weighted value, color value, etc}

THen

public Vertex
{
//get adjacent list of vertices
}
public class Edge
{
//define necesary values
//define pair of vertices to make an edge
}

您可以通过使用Tuple<>作为图的顶点来实现这一点。Tuple<>将允许您存储边缘的各种属性。

图形的签名可以定义为:

Dictionary< Vertex<T>, List<Tuple<T, T>> _edges.

Tuple中的第一项指示边缘的目的地节点。Tuple中的其余项将保持该边的属性。