資料結構學習——二分搜尋樹(1)
阿新 • • 發佈:2019-02-03
二分搜尋樹(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