ในวิธีการข้ามผ่านนี้ โหนดรูทจะถูกเข้าชมครั้งสุดท้าย จึงเป็นที่มาของชื่อ อันดับแรก เราสำรวจทรีย่อยด้านซ้าย จากนั้นไปยังทรีย่อยด้านขวา และสุดท้ายไปยังโหนดรูท
เราเริ่มจาก A และหลังจากผ่านการสั่งซื้อ เราจะไปที่ทรีย่อยด้านซ้ายก่อน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