【发布时间】:2014-01-01 13:50:51
【问题描述】:
我有一个无向图,其中节点存储在一个平面数组中。现在我正在寻找边缘的数据结构。获取给定节点的所有边应该具有恒定的时间复杂度。一条边包含两个节点索引和权重等附加信息。
我看到的唯一方法是复制数据,一个按左节点排序,另一个按右节点排序。
vector<vector<int>> left, right;
但我想防止重复边缘。
【问题讨论】:
-
你所说的“得到”是什么意思。对于给定的节点(Vnodes),输出边的集合通常是 O(V)。你想在 O(1) 时间内得到所有这些吗?
-
@RichardPlunkett 它应该与图的大小无关,但当然可以取决于边的数量。请注意,我将问题编辑为仅询问无向图。
-
@Jarod42 这种区别不存在,因为图是无向的。
标签: c++ performance data-structures graph