先行予約の走査は深さ優先検索と同じですか?


12

先行予約のトラバースとDFSは、ルートから左ブランチまで、ルートに戻ってから右ブランチに再帰的にトラバースする場合の両方と同じように思えます。私が間違っている場合、私を修正してください。

前もって感謝します!

回答:


10

事前順序トラバーサルはトラバーサルであり、バイナリツリーのすべてのノードを訪問します

深さ優先検索は検索であり、特定のノードを探す任意のグラフを巡回します(非周期グラフ(別名ツリー)が最適ではないことは無関係です)

これだけでも差の名前と呼ぶのに十分な差です


1
+1ですが、前後のトラバーサルは、より一般的なDFS戦略の特殊なケースに過ぎないことを付け加えます。
フランク14

1
事前順序走査は、単に子ノードの前にノードを処理することを意味しませんか?ノードは二分木、さらには木を形成すると言うのはどこですか?
キリアンフォス14

@KilianFothノードの階層を示唆しているため、ノードが(隣人とは対照的に)子を持つことの意味は、ツリー構造を暗示することを期待します。ツリーのルートである階層の最上部。しかし、バイナリではないツリーでさえ、事前順序トラバーサルと事後順序トラバーサルが理にかなっていると想像できます。
ヤングジョン

1

はい、それは逆の方法でなければなりません:DFSに似ていますPreOrder
用語PreOrderは、バイナリツリーとパーサーにより関連しています。
バイナリツリーの他の走査順序と比較するために使用されます:InOrderPostOrderおよびPreOrder
トポロジソートは、ポストオーダートラバーサルに似ています(すべての隣接ノードにアクセスした後、ノードをスタックにプッシュします)。


私の考えはこの答えに似ています。より具体的には、予約注文はDFSの親カテゴリの特定の実装です。先行予約の子トラバーサルは、厳密に左から右です。一方、汎用(親)DFSの場合、子のトラバーサル順序は定義されておらず、どの順序でもかまいません。
ジェレッドS.

-1

Preorderでバイナリツリーを走査するには、次の操作が実行されます

  1. ルートをご覧ください
  2. 左のサブツリーをたどる
  3. 適切なサブツリーをたどる

以下の画像では、事前注文のトラバースは1,2,3,6,4,5,7,8,9,10,11,12になります

同じイメージでは、1、2、3、4、5、6、7、8、9、10、11、12はDFSになります

DFSソース:http : //datastructuresnotes.blogspot.in/2009/02/binary-tree-traversal-preorder-inorder.html

事前注文ソース:Wiki

DFS


9
これはバイナリツリーではありません。これはツリーですが、バイナリではありません。
マノジR 14

「6」にサブノードがあるとどうなりますか?
マルジャンヴェネマ14

DFSまたは事前注文を求めていますか?
ゼダイク14

@ManojR上記のソースから入手しました。
ゼダイク14

このグラフの事前注文は同じ答えを与えます
チャールズチャウ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.