我有一个使用数组表示的图形:[4,7,3,2,...]其中每个元素指示i指向哪个边缘索引。例如,节点i = 0具有到节点i = 4的有向边。
我想找到节点的所有段/簇。节点段是直接或通过其他节点连接的节点。例如,对于数组[3,2,1,0],有两个段,0-3和1-2。因此,结果应为格式= {0:[0,3],1:[1,2]}。
我已经使用以下整体结构实现了算法:
while (numberOfNodesToCheck !=0):
for:...
while true:
finding all nodes a node can reach
break if no more nodes to reach
有人有更聪明的解决方法吗?