阿摩線上測驗 登入

申論題資訊

試卷:108年 - 合作金庫商業銀行 108 年第二次新進人員 開放系統第二類程式設計人員 專業科目:程式設計(以 APP、Angular JS/TS、SQL 語言為主)、系統分析、 資料結構及資料庫應用#78869
科目:程式設計(以 JAVA、SQL 語言為主)、系統分析、資料結構及資料庫應用
年份:108年
排序:14

題組內容

第四題: 二元搜尋樹(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