在 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