在講到集合的時候,很容易讓人想到的是數組和鏈表。而後你們會討論這兩種數據結構的差別。可是根據指定的內容在集合中查找,這兩種數據結構的性能卻沒有區別都是O(n),如何提升在集合中檢索指定內容數據的性能,是咱們在程序開發中面臨的問題。數組
例,根據{45,53,45,12,24,90}來構建二叉排序樹數據結構
二叉排序樹的刪除規則:設,
*f爲指向被刪除結點的雙親結點的指針
*p爲指向被刪除結點的指針性能
若*p是葉子結點,那麼就直接刪除spa
若刪除的*p結點只有左子樹或是右子樹,刪除*p結點以後直接將子樹掛在*f結點上便可,成爲*f結點的子樹3d
若刪除的*p結點同時擁有左、右子樹,刪除節點有兩種可行性操做:指針
若*p結點是*f的左子結點blog
第二種操做:使用二叉排序樹的中序遍歷獲得的結點順序,肯定*p結點的直接前驅或直接後繼結點,將該結點移到*p結點位置排序
該結點知足如下特性:圖片
接下來以*p結點的前驅結點進行討論:開發
接下來以*p結點的後繼結點進行討論:
上述是在*p是*f的左孩子的前提下進行的討論,接下來是以*p是*f的右孩子進行討論,直接上圖了
第二種轉換: