事前注文トラバーサルと DFS は、葉ノードまで深さ方向にトラバースする両方の場合と同じように思えます。私が間違っている場合、誰かが私を修正してもらえますか?
前もって感謝します!
事前注文トラバーサルと DFS は、葉ノードまで深さ方向にトラバースする両方の場合と同じように思えます。私が間違っている場合、誰かが私を修正してもらえますか?
前もって感謝します!
そうではありません。事前注文には、左ノードにアクセスしてから右ノードにアクセスする厳密な方法があります。ただし、DFS の場合は厳密な方法がないため、どちらでもかまいません。したがって、スタックに何をプッシュするかに基づいて、複数のトラバーサルが存在します。
おそらく、深さ優先アルゴリズムの定義と実装に依存します。DefaultMutableTreeNode
Java Swing の JTree コンポーネントのクラスには、ツリー トラバーサルに使用される次の列挙メソッドがあります。
Java Swing の実装でdepthFirstEnumeration
は、 は と同じpostOrderEnumeration
です。私のテストと公式ドキュメントは
これを確認しています。
他の人は、深さ優先の意味を別の方法で定義できます。たとえば、ウィキペディアの記事では、事前順トラバーサルと事後順トラバーサルは深さ優先トラバーサルの特定のタイプであると述べています。これは、深さ優先トラバーサルが具体的なトラバーサル アルゴリズムではないことを意味します。