如何在给定邻接列表的情况下找出图中节点的支配者列表?

时间:2012-11-29 11:24:18

标签: java graph

给定Graph中所有节点的列表,G,所有现有连接(边)的列表以及所有节点的邻接列表的列表,如何继续查找主导者列表给定节点?

我想到的一种方式如下:

对于给定节点N,找出从根节点到N的所有路径。这些路径的交集将给我一组主导N的节点。但是这里的问题是,我该如何找到路径? 特别是,在JAVA编码时。

具体而言,任何有用的答案都将受到赞赏。

谢谢!

1 个答案:

答案 0 :(得分:2)

我成功实施了Tarjan的算法。

FWIW,它就像:

要找出 n 支配的一组节点,只需计算从起始节点到其余节点的所有路径(一旦我们拥有所有节点的邻接列表,就很容易处理)避免 n 的节点让这个可达的节点集是 R n 占主导地位的节点是 R 中不存在的节点。也就是说,如果 U 是给定图形的所有节点的集合, n 将主导属于集合 UR 的节点