【发布时间】:2021-10-22 15:45:29
【问题描述】:
我目前正在写我的硕士论文。这是关于图表的。我的算法准备好了。但是现在我必须考虑有用的数据结构来表示图形以及良好运行时所需的其余部分。由于内存量大,我不允许使用邻接矩阵。由于我必须在每次迭代中检查是否存在某个边缘,因此邻接列表也没有任何意义。
首先我想到了两个相互嵌套的哈希表。所有节点都存储在第一个表中,所有相邻节点都存储在第二个表中。 但是由于我必须能够在我的算法中选择一个随机邻居,所以这也不是最优的。 此外,我必须能够在算法的每次迭代中保存边缘权重。
包含所有基本操作的列表:
- 我需要展示边缘,如果存在某个边缘,我可以在 O (1) 中检查
- 我必须能够在 O(1) 中选择固定节点的随机邻居
- 我需要能够为 O (1) 中的边缘分配权重
- 我还需要找出 O (1) 中的结度数
我可以对所有操作使用不同的数据结构。不幸的是,我的想法已经不多了。
我希望这里有人可以帮助我。
提前致谢!
丽莎
【问题讨论】:
-
列出您需要执行的所有基本/原子操作以及它们需要多快。然后我们可以通过建议满足这些要求的数据结构来提供帮助。
-
图应该有多少个顶点和边?
标签: data-structures hashtable graph-theory