我在构建图形结构时遇到了一些问题。我知道如何构建一个简单的链表和双重链表。但我想构建一个像本网站中那样的图结构(图片输出)http://www.cs.sunysb.edu/~algorith/files/graph-data-structures.shtml
最佳答案
您有三种常见的解决方案:
- 邻接矩阵(在其中存储
N*N
的矩阵,其中 N 是顶点数,在matrix[x][y]
中,您将存储如果x
有一条到y
的边则为一个值,否则为 0 - 一个边列表,您只需要在其中保留一长串边,这样如果一对
(x,y)
在列表中,那么就有一条从 x 到 y 的边< - 一个邻接表,其中有一个顶点列表,每个顶点
x
都有一个到节点的边列表,x 有一个边到该节点。
每一种不同的方法都有好有坏
- 所需空间
- 与特定操作相关的计算复杂性高于其他
因此,根据您需要对图表执行的操作,您可以选择其中任何一个。如果您想了解上述可能实现的具体特征,请查看我的 answer到另一个 SO 问题。
关于C编程语言图结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10889007/