題組內容

第四題: 二元搜尋樹(Binary Search Tree)是指一棵二元樹狀資料結構,具有下列性質: 
1. 若任意節點的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值; 
2. 若任意節點的右子樹不空,則右子樹上所有節點的值均大於它的根節點的值; 
3. 任意節點的左、右子樹也分別為二元搜尋樹; 
4. 沒有鍵值相等的節點。 
5d6e00e9b060d.jpg
上圖為一二元搜尋樹範例,請就上圖回答下列問題:

(五)下面 Java 程式碼為節點類別宣告,請寫出搜尋方法的演算法。【5 分】5d6e00f7245d0.jpg

詳解 (共 1 筆)

詳解 提供者:god Manto
boolean search(TreeNode<E> root, E element) {
    // 如果根節點為空,則返回 false
    if (root == null) {
        return false;
    }
    
    // 如果根節點的元素等於目標元素,則返回 true
    if (root.element.equals(element)) {
        return true;
    }
    
    // 如果目標元素小於根節點的元素,則在左子樹中遞歸搜尋
    if (element.compareTo(root.element) < 0) {
        return search(root.left, element);
    }
    
    // 如果目標元素大於根節點的元素,則在右子樹中遞歸搜尋
    return search(root.right, element);
}
來源 Chatgpt