1. 程式人生 > >經典結構 搜索二叉樹

經典結構 搜索二叉樹

nbsp tree value 原理 弊端 java 定義 數據 結構

內容:

1、搜索二叉樹

2、典型搜索二叉樹原理(AVL樹、紅黑樹、SB樹)

3、旋轉 -- Rebalance

4、Java中紅黑樹的使用

1、搜索二叉樹

搜索二叉樹的定義:對於一棵二叉樹中的任意子樹,其左子樹上的所有數值小於頭結點的數值,

其右子樹上所有的數值大於頭結點的數值,並且樹中不存在數值相同的結點。也稱二叉查找樹

2、典型搜索二叉樹原理(AVL樹、紅黑樹、SB樹)

(1)AVL樹

平衡二叉樹:對於一棵二叉樹中的任意子樹,其左子樹和其右子樹的 高度相差不超過1

AVL樹是一種具有嚴苛平衡性的搜索二叉樹,那就是所有子樹的左子樹和右子樹的高度相差不超過1

弊端是,每次發現因為插入、刪除操作破壞了這種平衡性後,都需作出調整從而恢復平衡,調整較為頻繁

(2)紅黑樹

(3)SB樹

3、旋轉 -- Rebalance

4、Java中紅黑樹的使用

Java中紅黑樹的實現有TreeSet和TreeMap ,前者結點存儲的是單一數據,而後者存儲的是 <key,value> 的形式

使用代碼如下:

經典結構 搜索二叉樹