1. 程式人生 > >二分搜尋樹基礎

二分搜尋樹基礎

一、二分搜尋樹的優勢

(1)key可以自己定義

          比如用String來作為key來實現一個查詢表,而陣列只能用索引。

(2)對比其他陣列形式

(3)高效查詢,刪除,插入資料(O(logN))

 二、二分搜尋樹的基本性質

(1)是一棵二叉樹

(2)不一定是完全二叉樹,因而資料儲存不適宜用陣列(稀疏),常用自定義節點資料結構。  

三、二分搜尋樹的基本資料結構定義

(1)Node節點

public class Node {
    int key;
    int value;
    Node leftNode;
    Node rightNode;

    public Node(int key, int value) {
        this.key = key;
        this.value = value;
        this.leftNode = null;
        this.rightNode = null;
    }
}

(2)二分查詢樹的資料結構定義

public class BinarySearchTree {
    private int count;
    private Node root; //根節點

    public BinarySearchTree() {
        this.count = 0;
        this.root = null;
    }
    public int size(){
        return this.count;
    }
    public boolean isEmpty(){
        return this.count == 0;
    }

}