在 JavaScript 二叉查找树中查找最小值和最大值
在二叉查找树中,如果我们查看左子节点始终小于父节点的属性,我们就会发现,如果我们继续迭代到左子节点,直到到达没有左子节点的节点,我们基本上会找到 BST 中的最小元素。
让我们在代码中实现此函数。从现在开始,我们将只实现函数的单个版本,即迭代或递归。在这种情况下,我们将创建一个迭代函数 -
示例
getMinVal() {
if (this.root === null) {
throw "Empty tree!";
}
let currNode = this.root;
while (currNode.left !== null) {
currNode = currNode.left;
}
return currNode.data;
}你可以使用以下方法进行测试 -
示例
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); console.log(BST.getMinVal());
输出
这将产生以下输出 -
3
同样,你可以扩展此代码以编写一个名为 getMaxVal() 的函数,该函数返回最大值,方法是迭代最右子节点值。我们将在此处放置代码供你核实 -
示例
getMaxVal() {
if (this.root === null) {
throw "Empty tree!";
}
let currNode = this.root;
while (currNode.right !== null) {
currNode = currNode.right;
}
return currNode.data;
}
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP