给定多图的邻接列表,计算O(| V | + | E |)时间内等效(简单)无向图的邻接列表

时间:2017-02-06 02:42:03

标签: algorithm graph adjacency-list

我们给出了多图的邻接列表,G =(V,E)并且需要找到O(V + E)算法来计算等效(简单)无向图的邻接列表。

我在另一篇文章中找到了以下解决方案(它是问题部分的一部分因此我的转发):

" [H]获得大小| V |的数组以便在adj [u]中标记至少遇到过一次的顶点,从而防止重复。在遍历每个adj [u]之前重置数组。"

原谅我的无知,但我不确定这是怎么回事(| V | + | E |)。重置长度| V |的成本是多少数组| V |次?

谢谢。

1 个答案:

答案 0 :(得分:1)

您不需要实际重置数组。

假设数组存储int。顶点标记为iff mark[u] == v,其中v是当前顶点的索引或id。

当您移动到下一个顶点时,v的值会发生变化,并且数组中的所有条目都将计算为false,而不必更改数组中的值。