1. ホーム
  2. algorithm

[解決済み] 非回帰的深さ優先探索アルゴリズム【非公開

2022-04-24 15:22:36

質問

非二分木に対する非再帰的深さ優先探索アルゴリズムを探しています。どんな助けでも非常に感謝されます。

どのように解決するのですか?

DFSです。

list nodes_to_visit = {root};
while( nodes_to_visit isn't empty ) {
  currentnode = nodes_to_visit.take_first();
  nodes_to_visit.prepend( currentnode.children );
  //do something
}

BFSです。

list nodes_to_visit = {root};
while( nodes_to_visit isn't empty ) {
  currentnode = nodes_to_visit.take_first();
  nodes_to_visit.append( currentnode.children );
  //do something
}

シンメトリーになっているところが、なかなかカッコイイですね。

更新しました。 ご指摘の通りです。 take_first() は、リストの最初の要素を削除して返します。