C编程语言图结构

标签 c graph

我在构建图形结构时遇到了一些问题。我知道如何构建一个简单的链表和双重链表。但我想构建一个像本网站中那样的图结构(图片输出)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/

相关文章:

r - 如何在条形图 R 上绘制指数函数?

c - fork之后,全局变量是共享的吗?

C 编程错误,打印链表,在运行时执行代码崩溃

c - 如何将包含指针的结构从用户空间复制到内核

algorithm - 如何将无向图转换为每个节点最多有 K 个父节点的有向图?

java - 如何从动态生成的JavaFX PieChart 中获取数据?

c - mutex_unlock 是否起到内存栅栏的作用?

c - 初始化结构时发生访问冲突

python - 扰动后保持无标度图的度分布 - python

algorithm - Pregel API 上 Spark 代码的 Java 等价物