假设我有一个包含N个节点111,222,...,nnn的图表,我的图表如下表所示
NodeID | PredecessorID
222 111
333 111
555 222
555 333
等等。
给出已访问的M个节点的列表,如何找到下一个要访问的所有节点? 接下来要访问的节点是已访问其所有前任的节点。
答案 0 :(得分:0)
如果您的列表M包含所有访问过的节点,而不仅仅是其中的一部分,您可以这样做:
foreach n in N:
visite = True
if n is not marked:
foreach predecessor (pn) of n:
visite = visite and (is pn marked)
if visite = True:
add n to visitable nodes
在最坏的情况下,predecessors of n
的数量是N
(完整图),因此运行时复杂度为O(N ^ 2)