2-3-4 樹

來源:互聯網
上載者:User

       2-3-4樹是一種階為4的B樹。它是一種自平衡的資料結構,可以在O(lgn)的時間內尋找、插入和刪除,這裡的n是樹中元素的數目。2-3-4樹和紅/黑樹狀結構是等價的,也就是每個紅/黑樹狀結構都可以轉化為一顆2-3-4樹,每個選擇操作也和2-3-4樹中的分裂操作對應。

      2-3-4樹是這樣一種資料結構,滿足如下性質:

      1) 每個節點每個節點有1、2或3個key,分別稱為2-node,3-node,4-node。

      2) 每個節點的keys把區間進行了劃分,以4-nde為例,key1、key2、key3分別夾在subtree1, subtree2和subtree2, subtree3和subtree3, subtree4之間。

      3) 4-node的子節點不能是4-node。

      如所示:

          

      搜尋:

      1. 從root開始

      2. 比較當前節點的值

          2.1 如果找到,就返回當前節點

          2.2 如果沒有找到,就找出要搜尋的值屬於哪一個子樹

      3. 遞迴的搜尋子樹

 

      在插入和刪除的關鍵是維持性質3),即4-node的節點不能是4-node

 

     插入Key

     1.遞迴搜尋Key

         1.1 如果root是4-node(ABC),則建一個新的root(B),A,C成為它的兩個子樹

 

     1.2 向下搜尋, 對於中途經過的每一個node, 如果它是4-node則使用如的變換分拆(注意到根據假設演算法不會產生4-node的子節點是4-node, 所以這個操作總是能進行的)

     1.3 如果相應的key已存在, 則演算法結束, 不需要插入 

     2. 注意到如果key不存在, 則1的遞迴搜尋一定停在分葉節點

     3. 在當前的分葉節點插入

     3.1 如果是2-node或3-node, 則插入當前節點把它變成3-node或4-node, 演算法結束   

     3.2 如果是4-node, 則根據假設, 它的父節點一定不是4-node(即是2-node或者3-node)       

       3.2.1 使用與1.2相同的變換分拆4-node       

       3.2.2 插入相應節點(, 一定是2-node)

        

 

       要證明2-3-4上面的出入演算法一定形成一個平衡樹,即從root開始往下到任一個葉子的長度都是相等。

       用數學歸納法:

       1. 只有一個節點的樹當然是平衡的

       2. 假設插入了n個元素,樹還是平衡的,現在插入一個新元素,要證明不會破壞平衡性:

       演算法會改變tree的是1.1, 1.2, 3.1, 3.2。顯然1.2, 3.1, 3.2都不會改變樹的深度,考慮1.1,它令樹的路徑深度增加1,原來的樹是平衡的,深度增加後當然還是平衡的。

 

        有n個元素的2-3-4樹的深度的粗數量級估計;最壞情況全是2-node,則深度是logn,最好情況全是4-node,深度為logn/2,故:

         logn/2 <  depth  ≤  logn(左邊括弧是不可能的,因為不存在4-node的子節點是4-node)

       

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.