实现一个二叉搜索树(JavaScript 版)
二叉树在计算机科学中应用很广泛,学习它有助于让我们写出高效的插入、删除、搜索节点算法。二叉树的节点定义:一个节点最多只有两个节点,分别为左侧节点、右侧节点。 二叉搜索树是二叉树中的一种,在二叉搜索树中每个父节点的键值要大于左边子节点小于右边子节点。下图展示一颗二叉搜索树。 二叉搜索树实现大纲 本文将使用 JavaScript 语言,实现一个二叉搜索树,以下为实现的方法: constructor():构造函数,初始化一个二叉搜索树 insert(value):二叉树中查找一个节点,如果存在返回 true 否则返回 false preOrderTraverse(cb):先序遍历或称前序遍历 inOrderTraverse(cb):中序遍历 postOrderTraverse(cb):后序遍历 minNodeValue():最小节点值 maxNodeValue():最大节点值 removeNode(value):移除节点 destory():销毁节点 注意 :在实现二叉树搜索 在这里插入代码片 的很多方法中我们将使用大量的递归操作,如果对它不了解的,可以自行查阅资料学习。 初始化一个二叉搜索树 声明一个 BST 类,在构造函数的 constructor() 里声明它的结构: class BST { constructor () { this.root = null; // 初始化根节点