紅黑樹 改進版 新增刪除節點的方法實現

2021-04-24 12:48:27 字數 353 閱讀 8427

紅黑樹的文章看了很多,但個人感覺這一篇:

http://zh.wikipedia.org/w/index.php?title=%e7%b4%85%e9%bb%91%e6%a8%b9&variant=zh-cn講的最清楚,有一種豁然開朗的感覺.

其他的文章在網上也找了一些,可是看到一半就想頭往牆上撞了,看來技術練到一定程度,語言與文字的表達技巧就非常重要了,呵呵.我是菜鳥啊.看我寫的文章都直接給**,很少寫文字.太懶了.以後要多多鍛鍊.

直接貼出以下**(如有bug請一定告之,呵呵. mail:[email protected]).

紅黑樹繼承了二叉排序樹的實現  ..測試用例做的不夠全,有朋友如果時間充裕請幫忙多測測,呵呵

紅黑樹之二(刪除節點)

紅黑樹的另乙個重要的操作是刪除節點,它也可以分為兩步 找到要刪除的節點,並刪除它 對樹進行調整使得樹滿足紅黑樹的要求 從排序樹中刪除節點的思路是一樣的,首先找到要刪除的節點,並做如下處理 如果該節點不存在非空子節點,則直接刪除它 如果該節點存在乙個非空子節點,則用其非空子節點替換其位置即可 如果該節...

紅黑樹的刪除

一 紅黑樹的節點刪除 從紅黑樹上刪除乙個節點,可以先用普通二叉搜尋樹的方法,將節點從紅黑樹上刪除掉,然後再將被破壞的紅黑性質進行恢復。我們回憶一下普通二叉樹的節點刪除方法 z指向需要刪除的節點,y指向實質結構上被刪除的結點,如果z節點只有乙個子節點或沒有子節點,那麼y就是指向z指向的節點。如果z節點...

理解紅黑樹的節點插入和刪除

每個結點為紅色或者黑色 根結點為黑色 每個葉結點為黑色 如果乙個結點為紅色,則它的兩個子結點為黑色 對每個結點,從該結點到其後代葉子節點的簡單路徑上,均包含相同數目的黑色結點 這裡的葉結點不是指使用者在樹最底層插入的新結點點,而是插入新結點後,新結點的兩個為 nil 的左右孩子 紅黑樹的這 5 個性...