小蚂蚁学习数据结构(32)——二叉排序树的概念
2019獨角獸企業重金招聘Python工程師標準>>>
二叉排序樹,定義:
? ? 1,若左子樹非空,則左子樹上所有節點的關鍵字均小于根節點關鍵字。
? ? 2,若右子樹非空,則右子樹上所有節點的關鍵字均大于根節點關鍵字。
? ? 3,左右子樹本身又是一顆二叉樹。
? ? 定義也是一個遞歸定義。
二叉排序樹的特點:
? ? 中序遍歷二叉排序樹,可以得到關鍵字序列是一個遞增的有序序列。
二叉排序樹查找思路:
? ? 1,如果二叉排序樹為空,則查找失敗。
? ? 2,如果key等于當前根節點,則查找成功。
? ? 3,如果key小于當前根節點的值,在繼續在根的左子樹中查找。
? ? 4,如果key大于當前根節點的值,在繼續在根的右子樹中查找。
二叉排序樹的代碼實現:
? ? (略),哈哈哈,今天是除夕,在家里心不靜,就不寫了,感覺也不難,以后有時間再寫。
二叉排序樹的查找:
? ? 在二叉排序樹上的平均查找長度與二叉樹的形態有關。
? ? 當樹的形態比較均衡時,樹的高度較小,平均查找長度也較小。
二叉排序樹的插入:
? ? 1,如果二叉排序樹為空,則待插節點作為根節點插入空樹中。
? ? 2,如果待插入的關鍵字值和根節點關鍵字值相等,則無需插入。
? ? 3,如果插入的關鍵字小于根節點的數值,則插入到左子樹中。
? ? 4,如果插入的關鍵字大于根節點的數值,則插入到右子樹中。
? ? 5,如此進行下去,當然,如果該數值已經存在就不再插入同一個數值。
二叉排序樹的刪除:
? ? 1,刪除葉子節點,很簡單,直接刪除,父節點的指針域賦予NULL
? ? 2,刪除單分支節點,將父節點與孩子節點直接相連
? ? 3,刪除雙分子節點,用它的中序后繼替換它,并使整棵樹保持BST性質。
二叉排序樹的查找分析:
? ? 剛才也提到了,這個和二叉排序樹的排列生成順序有關,如果這個二叉排序樹的形態是一條直線的話,這和順序查找沒有什么不同,為了防止這種情況的產生,就出來了一個平衡二叉樹的概念。
平衡二叉樹:
? ? 略,馬上晚會就開始了,PS:祝大家新年快樂,萬事如意。?(*^-^*)
????學PHP的小螞蟻 博客?http://my.oschina.net/woshixiaomayi/blog
轉載于:https://my.oschina.net/woshixiaomayi/blog/614288
總結
以上是生活随笔為你收集整理的小蚂蚁学习数据结构(32)——二叉排序树的概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos 配置yum源
- 下一篇: LVS-DR配置