在Javascript树中进行预遍历

在这种遍历方法中,首先访问根节点,然后是左子树,最后是右子树。

我们从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