1. 程式人生 > >資料結構學習——二分搜尋樹(1)

資料結構學習——二分搜尋樹(1)

       二分搜尋樹(Binary search tree):滿足任何節點的鍵值大於等於該節點左子樹中的所有鍵值,小於等於該節點右子樹中的所有鍵值的樹。(如下圖)


        (使用Java實現二分搜尋樹,由於該資料結構的特點所以要求存入的元素必須可以比較,這裡通過繼承Comparable類來實現)


     二分搜尋樹是一種二叉樹,而二叉樹天生就具有遞迴性所以一下程式碼都用遞迴的方式。

    一、新增操作(add)

    方法1:

(public方法供外界呼叫)


(私有遞迴演算法供本身呼叫)


    方法2:演算法思想和方法1不同,方法2 是返回插入的新節點後的二分搜尋樹的根節點


例如要插入 {5,3,4,6,8,2} 這幾個數字

首先插入5  root = 5  => 然後插入3 root =>3 以此類推再進過比較最後得到

                                5
                             /   \
                            3      6 
                           / \       \  
                         2    4       8