在 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;
}

更新時間: 2020 年 6 月 15 日

319 人檢視

開啟您的職業生涯

完成本課程即可獲得認證

開始
廣告
© . All rights reserved.