對2 3 4樹的簡單想法

2021-06-11 18:31:23 字數 1298 閱讀 9536

2-3樹插入時,我們首先從根節點開始,從上到下找到待插入的葉節點;

然後再從葉節點開始從下到上,執行插入操作。

而2-3-4樹插入時,同樣首先我們也從根節點開始,從上到下找待插入的葉節點但是與2-3樹插入不同的是,在這個尋找過程中遇到4-node,我們就把可以把4-node**成2個2-node,重新鏈結到其父節點。這個操作不會改變2-3-4樹的任何性質。最後找到待插入的葉節點時,這個葉節點一定不是4-node,就可以直接把需要插入的關鍵字填入到這個葉節點中,不再需要從下到上的操作了。

原來以為2-3-4樹會更複雜的,原來比2-3樹要簡單。真的有意思,複雜和簡單都是你意想不到的。開始想著是不是可以用2-3-4樹插入的方法來進行2-3樹的插入,考慮了一下,發現是不可以的.乙個3-node不能**出兩個2-node。而乙個4-node很容易**兩個2-node,同時把中間的關鍵字放到父節點中。如果這個4-node是根節點,就生成乙個新的父節點。例如下面的乙個4-node節點:

**後就可以得到新的樹:

展開想一下,如果樹是2-3-…-2n+1(n=1,2,3….),在進行插入時就要採用類似2-3樹插入的操作;而如果樹是2-3-…-2n+2(n=1,2,3,…),在進行插入時就可以採用類似2-3-4樹的插入操作。

普通二叉搜素樹到2-3-4樹: 普通二叉搜尋樹每個節點只包含乙個關鍵字,而2-3-4樹則突破每個節點只有乙個關鍵字的限制,像普通樹一樣,每個節點可以容納多個關鍵字。如果乙個節點只能容納乙個關鍵字,則二叉搜尋樹不能平衡。比如有四個關鍵字a,d,e,h。這四個關鍵字是不能形成左右子樹高度一致的二叉樹,所以需要擴充每個節點所能容納的關鍵字的個數。這樣就可以形成下面的平衡樹。

或者

但是2-3-4樹的插入和刪除操作相對複雜,於是又將2-3-4樹作等價變換,得到紅黑樹,一種特殊型別的二叉搜尋樹。在紅黑樹上進行插入和刪除又變的簡單,而同時搜素的效率又高,搜尋的時間複雜度還是o(logn).

為了保持平衡,我們增加節點容納關鍵字的數目,從普通二叉樹進化到2-3-4樹;為了簡化插入和刪除操作,又將2-3-4樹退化到紅黑樹—一種特殊的二叉搜尋樹。想想這種思維的變化,很有意思。

簡單的正念冥想法

近二十年來的研究證明,冥想可以改變思維 改善專注力,它能重塑我們的大腦。冥想還可以降低焦慮程度,有利於情緒 身體的健康,增強身心免疫力。好東西一定要分享。平和是可以傳染的,快樂是可以傳染的,幸福也是可以傳染的。簡單的正念冥想法 mindful meditation 1,選擇自己覺得最舒適的坐姿 2,...

一些簡單的想法

我的關於pat甲級考試的總結的訪問量是其他文章訪問量的總和還要多。一是我這裡確實沒什麼乾貨 二是我這裡的內容可搜尋性不強,本身標題無傳播性 三是感覺大家對pat考試蠻重視的。但是,至少現在以我的親身經歷來講,如果只是考個乙級的話,企業應該是不看重的。其實去年十二月份的考試考得一般,今年三月份的成績反...

POJ 2479的簡單想法

這道題是簡單的dp例題拓展,問題是 給定一行數字,然後求這行數字中兩個連續子串行和的最大值,並輸出 兩個子串行不能有重疊的部分 由於是初學者,可能想法比較侷限。我的總體思路是這樣 這題肯定和最大求子序列有關,然後進行工作 用dp1 i 表示以第i個數結尾的最大子串行的和,用dp i 表示已第i個數為...