定向图实现

dan*_*els 7 c++ graph

我需要在c ++中实现有向图(有向图)作为家庭作业的一部分,我在如何表示顶点和边数据类型方面存在一些问题.
任何人都可以请一个例子或一个简单的c ++类实现这个,所以我可以研究它并从那里扩展?

我已经google了一下,但我只发现了使用Boost或其他库的结果,我只需要一些不依赖任何库的简单.

谢谢.

Gre*_*ill 29

使用数据结构表示有向图有两种主要方式:

以节点为中心.此方法将每个节点表示为程序中的对象,每个节点包含有关其链接到的其他节点的信息.其他节点可以与在当前节点和目标节点之间存在有向边的节点列表一样简单.

以边缘为中心.此方法将每个表示为程序中的对象,每个边包含有关其连接的节点的信息.在有向图中,每个边将只有一个"源"和"目标"节点(如果您正在考虑自循环,则可能是相同的节点).该方法本质上是有序对的列表.

根据您正在解决的问题,这两种基本形式中的一种最终将是最合适的.更具体的算法可能需要向上述基本结构添加更多信息,例如从当前节点可到达的所有节点的列表.