Javascriptツリーでの注文後のトラバーサル
このトラバーサルメソッドでは、ルートノードが最後にアクセスされるため、この名前が付けられています。最初に左側のサブツリーをトラバースし、次に右側のサブツリーをトラバースし、最後にルートノードをトラバースします。
A、から始めます 注文後のトラバーサルに続いて、最初に左側のサブツリーBにアクセスします。 B 注文後にトラバースされます。このプロセスは、すべてのノードにアクセスするまで続きます。このツリーのポストオーダートラバーサルの出力は-
になります。D → E → B → F → G → C → A
これは、実装するアルゴリズムです-
- 左のサブツリーを再帰的にトラバースします
- 右のサブツリーを再帰的にトラバースする
- ノードのデータを印刷する
クラスでどのように実装するかを見てみましょう。
postOrder() { postOrderHelper(this.root); }
ヘルパー関数-
例
function postOrderHelper(root) { if (root !== null) { postOrderHelper(root.left); postOrderHelper(root.right); console.log(root.data); } }
-
を使用してこれをテストできます例
let BST = new BinarySearchTree(); BST.insertRec(10); BST.insertRec(15); BST.insertRec(5); BST.insertRec(50); BST.insertRec(3); BST.insertRec(7); BST.insertRec(12); BST.postOrder();
出力
これにより、出力が得られます-
3 7 5 12 50 15 10
-
データ構造におけるプレオーダーツリートラバーサル
このセクションでは、二分探索木のための事前順序トラバーサル手法(再帰的)について説明します。 このようなツリーが1つあるとします- トラバーサルシーケンスは次のようになります:10、5、8、16、15、20、23 アルゴリズム preorderTraverse(root): Begin if root is not empty, then print the value of root preorderTraversal(left of root)  
-
データ構造におけるレベル順序ツリートラバーサル
このセクションでは、二分探索木のレベル順トラバーサル手法について説明します。 このようなツリーが1つあるとします- トラバーサルシーケンスは次のようになります:10、5、16、8、15、20、23 アルゴリズム levelOrderTraverse(root): Begin define queue que to store nodes insert root into the que. while que is not empty, do item := ite