【发布时间】:2012-12-04 01:21:00
【问题描述】:
通常用于在内存中表示图形的两种方法是使用邻接表或邻接矩阵。邻接表是使用指向链表的指针数组来实现的。有什么理由比使用向量向量更快吗?我觉得它应该使搜索和遍历更快,因为回溯会简单得多。
【问题讨论】:
-
你一次只能回溯 1 对吗?那么双向链表也一样好吗?
-
但这仍然需要额外的指针。那么就内存和速度而言,向量会更好吗?
-
通常这取决于你的图是稀疏的还是密集的。
-
@KerrekSB 是的,我正在考虑这个问题,但在这一点上甚至不一定正确。顺便说一下,我会使用哈希+向量或哈希+哈希组合来快速访问。
-
如果您有数百万个顶点并且只有少数边,那么邻接矩阵的内存非局部性将不值得......这真的取决于。最好使您的系统模块化,以便您可以测试两种实现并进行比较。