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

上圖為一二元搜尋樹範例,請就上圖回答下列問題:
(五)下面 Java 程式碼為節點類別宣告,請寫出搜尋方法的演算法。【5 分】
詳解 (共 1 筆)
詳解
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
// 如果根節點為空,則返回 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