algorithm - 存储具有未知节点顺序的图

标签 algorithm graph graph-algorithm storing-data

在向量中存储节点顺序未知的图形的最佳方法是什么。例如,我有节点以未知顺序出现,如 35、23、89、200、12、89、569 等......我想以这样一种方式存储它们,即不浪费内存并且如果在恒定时间内有效地访问节点然后这将会非常棒。可能有些哈希函数会起作用,但如果有一个可以区分节点的函数,请告诉我,或者是否有任何其他方法。

谢谢

最佳答案

我想到的最简单的解决方案就是按顺序将它们插入到您的向量中,然后创建一个 map<int,int>从它们的值映射到它们的索引。

在你的例子中:

map[35] == 0
ma[[23] == 1
map[89] == 2
map[200] == 3
map[12] == 4
...

现在,访问节点i作为vector[map[i]]

编辑:
第二种可能是使用set。而不是 vector保存元素,但它可能并不总是需要的 [set 没有重复项,并且不会按照您插入的顺序包含元素],但请考虑它是否适合您。

关于algorithm - 存储具有未知节点顺序的图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9000079/

相关文章:

python-3.x - 使用Python实现卡恩拓扑排序算法

有效查找水平可见性图(HVG)的算法

algorithm - 压缩布隆过滤器

ruby - 如何创建一个返回数组中回旋镖总数的函数

algorithm - 为什么DFS和BFS的时间复杂度都是O(V+E)

python - 高效处理 Python 列表中的重复项

algorithm - 在图形中查找路径通过最少三个节点并以起始节点结束的最小距离?

c - 我写了一个 mergeSort 代码(来自 clrs 书)但没有得到输出

c# - .NET 图形库?

Android - 如何使用 AChartEngine 使用自定义 x 轴标签保留默认缩放/平移功能