消除图中不必要的顶点

时间:2013-11-13 07:03:46

标签: graph-algorithm

我正在面试并遇到了这个我无法解决的问题。它是这样的:

创建一个有效的算法,对无向图G执行两个任务:(1)通过用单个边替换它们来消除边的多个副本,(2)替换边(u,v)和(v,w) )边缘(u,w),其中v是二阶边缘。请注意,删除度为2的顶点可以创建多个边的副本,并且删除多个边的副本可以创建度为2的顶点。

我不太明白如何删除具有2级的顶点可以创建边的多个副本以及如何删除边的多个副本可以创建具有2阶的顶点。有人可以帮忙澄清一下吗?

2 个答案:

答案 0 :(得分:0)

在四个顶点的图形中,w,x,y,z

  w *-----  x  -----* y ------- z 
    |               |
    *---------------*

如果使用替换规则将(w,x)和(x,y)替换为(w,y),而不是看起来,则从w到y有两条平行边。如果删除重复边缘,则图形将如下所示:

  w --------------- y ------- z 

所以现在如果用(w,z)替换(w,y)和(y,z),我们只需要(w,z)

  w ------------------------- z 

不完全是预期的

答案 1 :(得分:0)

删除度为2的顶点可以创建边的多个副本:

原始边缘:(u,v),(v,w),(u,w)去除v:(u,w),(u,w)

删除多个边的副本可以创建一个度为2的顶点:

去除(v,w)后的原始边缘:(u,v),(v,w),(v,w):( u,v),(v,w)