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