Trong phương thức duyệt này, nút gốc được ghé thăm trước, sau đó cây con trái và cuối cùng cây con phải.

Bắt đầu từ A, theo pre-order, ta trước ghé thăm A chính nó rồi chuyển sang cây con trái B. B cũng được duyệt pre-order. Quá trình tiếp tục cho đến khi tất cả nút được ghé thăm. Kết quả pre-order của cây này sẽ là:
A → B → D → E → C → F → G
Đây là thuật toán sẽ triển khai:
- In dữ liệu của nút
- Đệ quy duyệt cây con trái
- Đệ quy duyệt cây con phải
Hãy xem cách triển khai trong class:
preOrder() {
preOrderHelper(this.root);
}
Hàm helper:
Ví dụ
function preOrderHelper(root) {
if (root !== null) {
console.log(root.data);
preOrderHelper(root.left);
preOrderHelper(root.right);
}
}
Bạn có thể kiểm tra bằng cách sau:
Ví dụ
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();
Kết quả
Điều này sẽ cho ra kết quả:
10 5 3 7 15 12 50