ในวิธีการข้ามผ่านนี้ โหนดรูทจะถูกเข้าชมก่อน จากนั้นจึงไปที่ทรีย่อยทางซ้าย และสุดท้ายไปที่ทรีย่อยทางขวา
เราเริ่มจาก A, และหลังจากผ่านการสั่งซื้อล่วงหน้า เราไปที่ A . ก่อน ตัวเองแล้วย้ายไปที่ทรีย่อยด้านซ้าย B. ข ยังผ่านการสั่งซื้อล่วงหน้า กระบวนการนี้ดำเนินต่อไปจนกว่าจะมีการเยี่ยมชมโหนดทั้งหมด ผลลัพธ์ของการสั่งจองล่วงหน้าของทรีนี้จะเป็น -
A → B → D → E → C → F → G
นี่คืออัลกอริทึมที่เราจะนำไปใช้:
- พิมพ์ข้อมูลของโหนด
- สำรวจทรีย่อยด้านซ้ายซ้ำๆ
- ข้ามทรีย่อยด้านขวาซ้ำๆ
ให้เราดูว่าเราจะนำไปใช้อย่างไรในชั้นเรียนของเรา
preOrder() { preOrderHelper(this.root); }
ฟังก์ชันตัวช่วย:
ตัวอย่าง
function preOrderHelper(root) { if (root !== null) { console.log(root.data); preOrderHelper(root.left); preOrderHelper(root.right); } }
คุณสามารถทดสอบสิ่งนี้ได้โดยใช้ -
ตัวอย่าง
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.preOrder();
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ -
10 5 3 7 15 12 50