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