學習紅黑樹過程中的個人總結

2022-08-24 11:15:09 字數 1128 閱讀 4175

在知乎老師的幫助下,剛剛開始學習紅黑樹,個人的總結記錄下

對於treemap.class新增方法的了解:

先貼**(treemap.class新增調整方法):

一共分為4種情況(實際來說3種,這裡為了方便記錄):

當新增節點父級節點是祖父級節點的左兒子時:

第一種情況:

第二種情況:

當新增節點父級節點是祖父級節點的右兒子時:

第一種情況:

第二種情況:

紅黑樹的新增調整方法,就先記錄到這裡

對了,別忘了最後把根節點設定成黑色

root.color = black;//設定根節點為黑色

自己的總結:

三種情況(當前節點的父節點為紅色):

1.當叔叔節點為紅色:把父節點和叔叔節點設定成黑色,祖父設定成紅色,把當前節點的引用指向祖父節點,繼續迴圈判斷

2.當叔叔節點為黑色:如果當前節點是父節點的右孩子,對父節點進行左轉,然後當前節點引用指向父節點,然後把父節點設定成黑色,祖父節點設定成紅色,對祖父節點進行右轉

3.當叔叔節點為黑色:如果當前節點是父節點的左孩子,對父節點進行右轉,然後當前節點引用指向父節點,然後把父節點設定成黑色,祖父節點設定成紅色,對祖父節點進行右轉

學習紅黑樹後個人總結 插入刪除

一 概念 r b tree,全稱是red black tree又稱紅黑樹,它是一種特殊的二叉查詢樹,紅黑樹的每個節點上都有儲存位表示節點的顏色,可以是紅或黑。二 特性 1 每個節點或者是紅色,或者是黑色 2 根節點是黑色的 3 每個葉子節點 nil 是黑色的。注意 這裡的葉子節點,是指為空的葉子節點...

紅黑樹學習總結 刪除

看了蠻多種講解,個人感覺這個專欄情況分得比較細,比較適合我這樣頭腦不太靈光的初學者一些。一步簡化 如果需要刪除的結點有兩個孩子,我們的做法是找到這個結點的中序後繼,將後繼結點中的資料拷貝至待刪除結點,然後刪除後繼結點。而後繼結點必然最多只有乙個子結點,這樣我們就把刪除兩個孩子的結點轉為刪除乙個孩子的...

紅黑樹學習總結 二 之刪除篇

紅黑樹的五條性質 每個節點非紅即黑 根節點為黑 紅節點的兩個子節點都為黑 每個葉子節點都為黑 對於任一節點而言,其到葉子節點的每一條路徑都包含相同數目的黑節點 說真的在學紅黑樹的時候,看網上寫的部落格真的是一臉懵逼,完全不知道在講什麼東西,身邊的同事也沒有對它比較理解的,以至於我學了整整2天才把紅黑...