紅黑樹和多叉樹介紹和理解

2021-09-25 01:22:25 字數 600 閱讀 3192

多叉樹就是含有多個資料項,而且除了葉子節點其他的必須含有比資料項多乙個節點,每個節點的所有資料大小在對應資料項之間,這些規則都是為了保證樹的平衡,如圖

當遇到滿節點時需要**,**的思路大致是,將滿節點的資料項中間值取出來然後分兩半,分出的來的兩邊組成兩個子樹,然後接在取出來的資料項的兩邊,如果是根節點**取出來的節點即為新的根節點,如果不是根節點,取出來的資料項項加入父節點。也就是說除了葉子節點,其他節點都是從子節點**取出來的資料項慢慢填滿的。如圖

理解和紅黑樹一樣的思路,紅黑樹樹判斷某一邊過大的思路是某一邊的黑節點數過多也就是太長了,說明相應的父節點過於大或者小,導致每次插入都一直往它的子節點放而不是放另外一邊,導致自己過長也就是樹不平衡。多叉樹也是一樣,當某一節點滿節點時,說明該節點的資料項分布不合理導致會有資料一直插入該節點的子節點所以才會滿節點,所以就取中間出來,讓它合理一些分布。而且因為多叉樹是往上加層的,也就是不會往下面增加層數,天然的平衡樹

多叉查詢樹和紅黑樹

上圖是乙個二叉查詢樹 解決的方法可以使用多叉樹 2 3樹,2 3 4樹就是多叉樹,多叉樹通過重新組織節點,減少樹的高度,能對二叉樹進行優化。除了23樹,還有234樹等,概念和23樹類似,也是一種b樹。如圖 除了23樹,還有234樹都是b樹 2 3樹是由二節點和三節點構成的樹。b樹的階 節點的最多子節...

理解紅黑樹

在樹裡面的節點不是紅色的就是黑色的,沒有其他顏色,要不怎麼叫紅黑樹呢,是吧。性質二 根節點是黑色 根節點總是黑色的。它不能為紅。性質三 每個葉節點 nil或空節點 是黑色 這個可能有點理解困難,可以看圖 這個就是乙個紅黑樹,nil節點是個空節點,並且是黑色的。性質四 每個紅色節點的兩個子節點都是黑色...

紅黑樹理解

近期讀 linux核心設計與實現 第三版 清晰中文版 發現linux低層資料結構很多都用到紅黑樹,查查資料說說自己的理解。紅黑樹 二叉樹 高度限制 二叉樹 確定了它的查詢非常快。高度限制 這個是取普通二叉樹和平衡二叉樹之間。普通二叉樹,只管插入不做調整,可能會出現單鏈很長。平衡二叉樹,所有的鏈高度相...