假设在一个圆圈图中有许多具有某个值的顶点。
在使用Tarjan
找出这些SCC之后,我想将每个整个SCC变成两个顶点(不是一个),一个在这个SCC的这些顶点中具有最高值,另一个具有最低值。
让连接到这个SCC的那些顶点指向具有最低值的顶点,并且让从SCC指向的顶点指向具有最高值的顶点。
也就是说,像 1(4) -> 2(3) <-> 3(5) -> 5(1) <-> 4(6) -> 1(4)
,括号中的权重,是一个圆圈。我想把它翻译成类似的东西1(4) -> 2(3) -> 3(5) -> 4(1) -> 5(6) , 1(4) -> 4(1)
但我不知道如何实现这一点,请帮忙。
我正在使用 C 和邻接列表来存储图形。
对不起英语不好,我希望它足够清楚,可以理解。