首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图在C中的实现

图在C中的实现
EN

Stack Overflow用户
提问于 2011-03-30 20:04:42
回答 3查看 2.5K关注 0票数 2

我想知道实现图形数据结构的最佳和最快的方法以及相关的算法。

  1. Adjacency-List是由本书推荐的。

但是当我想要找到两个顶点v1v2之间的边时,我无法理解一个大图。

我必须遍历这个数组,它将是O(n)

我的理解是正确的还是有更好的方法来完成这件事。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-30 20:10:32

首先,它不是O(n)。保持列表的排序,它将是O(logN)。邻接表不一定由链表实现。通常有一个数组。

另一种非常流行的方法是邻接矩阵nxn,其中ai是1(或边的权重),如果i和j是连通的,否则是0。对于边多的稠密图,这种方法是最优的。对于稀疏图,邻接列表更好。

票数 2
EN

Stack Overflow用户

发布于 2011-03-30 20:08:06

您可以使用邻接矩阵代替列表。它会让你很快找到边缘,但它会占用一个大图的大量内存。

票数 0
EN

Stack Overflow用户

发布于 2011-03-30 20:17:42

有许多实现图的方法。你应该选择一个最适合你的算法。一些想法:

( a)全局节点和边缘列表。

( b)全局节点列表,每个节点边缘列表.

( c)邻接矩阵(Ai =w(如果存在Vi边连接),则为0)

d)边缘矩阵。(如果Ei连接节点Vj,则Ai=1)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5491667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档