C ++无向图

时间:2011-05-02 19:11:00

标签: c++ data-structures graph

过去几天我在这个主题上搜索了很多,我不明白如何在没有重量的情况下制作无向图。任何人都可以告诉我应该使用哪种结构和一个简单的算法?在此先感谢!!!

2 个答案:

答案 0 :(得分:6)

没有任何特定要求会强迫您为边缘赋予权重。您的邻接矩阵可以具有二进制条目1-0或true-false以指定节点之间的连接。所有图形算法都正常应用。

关于图表的非常有用的讲座:http://www.youtube.com/watch?v=ylWAB6CMYiY

答案 1 :(得分:0)

略微阐述了P.R.s的回答。标准矩阵表示可以很容易地解释为从顶部到左边(B到A)的顶部(东北),左边是从左到右(西南,没有这里)。任何位置的一(1)(可能是内部布尔)都表示未加权的连接。

x A B C D
A 0 1 0 0
B 0 0 1 1
C 0 0 0 1 
D 0 0 0 0

意味着A连接到没有节点。 B连接到A. C连接到B.D连接到B和C.

这个特殊的例子将创建一个树,其中D为根,子节点为B和C,A为B. A和C叶子的子节点。

请注意,未加权属性实际上并没有太多简化。仅在纯指针实现练习中,但这是毫无意义的FAPPadjacency list代替此adjacency matrix可能会为您带来内存使用优势。