実際に私が知りたいのは、BSTのインオーダートラバーサルアルゴリズムを実装する方法ではなく、BSTの挿入、削除、およびプリオーダートラバーサルアルゴリズムのみを使用して実装する方法ではありません。
標準のBSTアルゴリズムの挿入、削除、および事前注文トラバーサルの実装が指定されていると仮定できます。BST inorder traversalを実装する方法は?
答えて
Hmmm ...ルートノードには+、左ノードには1つ、右ノードには2つあります。事前注文は+ 1 2
となり、順番には1 + 2
となります。違いは1stと2ndが入れ替えられているため、挿入と削除があれば、各ルートノードの値をその左ノードの値で再帰的に交換してからpre -orderが戻ってくるツリーをたどると、インオーダートラバーサルが発生します。
私はこれが行く方法であるかどうかはわかりませんが、助けてくれることを願っています。
アンカー、あなたはどこかに何か間違っているようです。要素を削除して挿入することはできますが、2つの要素を交換することはできません。すべての挿入操作と削除操作は、バイナリ検索プロパティを保護するためです。 –
私は解決策を見つけたと思います。 :)
私たちは先行トラバーサル、挿入、および削除の方法を持っています。
私たちにBSTが与えられたとします。
私たちは、指定されたBSTで事前注文トラバーサルメソッドを提供しています。ルートの左のサブツリーがヌルになるまで、各ルートを削除して挿入します(ルートが最初に親となります)。ノードは再帰的に削除され、挿入されます。
ノードがなくなるまでルートの削除を開始します。削除されたノードを配列または任意の場所に配置します。ソートされたノードの集合が得られます。 (つまり、ノードはソートされた順序で削除されます。最小単位など...)
- 1. leaf to bst traversal
- 2. C++ BST Inorder Trouble
- 3. ハッシュテーブル&BST実装
- 4. BSTのJavaメンバー関数traversal
- 5. JuliaでBSTを実装する方法は?
- 6. BSTで削除コードを実装する方法は?
- 7. Pythonで 'range'を実装する方法BST
- 8. inorder traversalからのすべてのバイナリツリーを印刷します
- 9. Javaでエラーが発生するBSTの実装
- 10. BST、PythonのInorderトラバーサルの論理を理解する
- 11. Rails BSTタイムゾーンの実装
- 12. STL内のBST実装
- 13. BSTを使用してスタックを実装する
- 14. JavaでBSTを再帰的に実装する
- 15. BSTの最小要素の検索方法は?
- 16. 時間inorder後継メソッドを使用したBSTの印刷の複雑さ
- 17. Pythonでヒープトラバーサルを実装する方法
- 18. gremlin traversalで現在のタイムスタンプを取得する方法は?
- 19. Agda:_≦_(または、バイナリ検索ツリーを実装する方法)を推測する方法
- 20. JavaScriptを実装する方法は?
- 21. ハッシュキーナビゲーションを実装する方法は?
- 22. Androidライブコメントを実装する方法は?
- 23. ウィジェットを実装する方法は?
- 24. イメージマスクを実装する方法は?
- 25. lazy setdefaultを実装する方法は?
- 26. Tensorflow:Multilayered dynamic_rnnを実装する方法は?
- 27. カスタムFilterReaderを実装する方法は?
- 28. 検索を実装する方法は?
- 29. デスクトップティッカーを実装する方法は?
- 30. ByteBuddy:フィールドアクセスインターセプタを実装する方法は?
これを見てください(リンク:http://en.wikipedia.org/wiki/Tree_traversal) – devsaw