3

有向グラフを指定して、特定の開始点から到達できないすべてのノードを見つける方法を探しています。ダイクストラのアルゴリズムと同様の概念に基づいて、次のようになるアイデアがあります (疑似コード) が、より良い方法はありますか?

function DisconnectedNodes(Graph, Start)
  var Unknown = new list
  var Open = new list
  var Closed = new list
  for each Node in Graph
    Unknown.add(Node)
  Open.StealFrom(Unknown, Start)
  while Open.Count > 0
    var Current = Open[0]
    for each Node in Current.Destinations
      if Node in Unknown
         Open.StealFrom(Unknown, Node)
    Closed.StealFrom(Open, Current)
  return Unknown
4

1 に答える 1

5

開始ノードから幅優先探索を実行するだけです。BFS後にアクセスされなかったすべてのノードは、開始点から到達できません。

于 2012-11-25T00:07:42.497 に答える