ในวิธีการข้ามผ่านนี้ โหนดรูทจะถูกเข้าชมก่อน จากนั้นจึงไปที่ทรีย่อยทางซ้าย และสุดท้ายไปที่ทรีย่อยทางขวา

เราเริ่มจาก 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