在这种遍历方法中,首先访问根节点,然后是左子树,最后是右子树。
我们从A开始, 并在进行预遍历之后,首先访问 A 本身,然后移至其左子树B。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