数据结构- c++无向图

data structures - C++ undirected graphs

本文关键字:c++ 数据结构      更新时间:2023-10-16

在过去的几天里,我搜索了很多关于这个主题的内容,我不明白如何在没有权重的情况下制作无向图。谁能告诉我应该用哪个结构和一个简单的算法?提前感谢!!

没有任何特定的要求强迫你给你的边赋予权重。您的邻接矩阵可以有二进制条目1-0或真-假来指定节点之间的连接。所有的图算法都是正常的。

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

对p.r.的回答略加阐述。标准矩阵表示可以很容易地解释为顶部(东北)是从上到左(B到A),左边是从左到上(西南,这里没有)。任何位置的1(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叶。

注意,unweighted属性实际上并没有简化多少。只在一个纯指针实现练习,但这是相当毫无意义的FAPP。用adjacency list代替这个adjacency matrix可能会给您带来内存使用方面的优势。