在 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 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告