在 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