【发布时间】:2014-03-29 22:54:51
【问题描述】:
我正在解决一个问题(来自 Sedgewick 的算法,第 4.1 节,问题32)以帮助我理解,但我不知道如何继续。
“平行边检测。设计一种线性时间算法来计算(多)图中的平行边。 提示:维护一个顶点邻居的布尔数组,并通过仅根据需要重新初始化条目来重用该数组。"
如果两条边连接同一对顶点,则认为它们是平行的
有什么想法吗?
【问题讨论】:
-
你试过什么?现在不要担心得到 O(n),只需尝试计算平行边。你会怎么做?
-
我唯一能想到的就是显而易见的做法。假设我有一个邻接列表,我循环到列表的每个元素并计算重复次数,我也跳过了双重计数
-
如果没有更多关于图表定义的信息,没有人会给你一个好的答案。图是一组顶点和边 G = (V, E),但没有任何与之相关的几何概念。图形是否嵌入格子中?如果是的话是什么类型(正方形,三角形,其他?)。
-
该图以邻接列表的形式给出。意思是,这是一个二维数组,其中每个 (i,J) 表示两个顶点之间是否有边。
-
还假设图是无向且简单的
标签: graph adjacency-list