日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高度为5的3阶b树含有的关键字个数_数据结构要考得好,你心里要有B树

發布時間:2024/7/23 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高度为5的3阶b树含有的关键字个数_数据结构要考得好,你心里要有B树 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

01

知識框架

02

知識點詳解

1

B樹

①定義與性質

B樹也叫B-樹。B樹是一種平衡的多分樹,通常我們說m階的B樹,是二叉排序樹的一種擴展,它必須滿足如下條件:

01

每個結點最多只有m-1個關鍵字。

02

根結點最少可以只有1個關鍵字。

03

非根結點至少有m/2個關鍵字。

04

每個結點中的關鍵字都按照從小到大的順序排列,每個關鍵字的左子樹中的所有關鍵字都小于它,而右子樹中的所有關鍵字都大于它。

根結點的關鍵字數量范圍為[1,m-1];非根結點的關鍵字數量范圍為[m/2,m-1];

②B樹的插入

在進行B樹的插入時,根據上面提到的B樹的性質,我們可以總結出一條準則:在向B樹插入結點時,先判斷當前結點關鍵字的個數是否小于等于m-1,如果滿足,直接插入即可,如果不滿足,將結點的中間的關鍵字將這個結點分為左右兩部分,中間的結點放到父結點中即可。下面我們來看具體的例子:Q:向一顆5階B樹中插入關鍵字A:5階B樹中,每個結點最多有4個關鍵字,最少有2個關鍵字(根結點除外)。

01

插入15,30,45,60

?

02

插入19,此時該結點的關鍵字個數大于,需進行分裂

03

插入20,25,28

左邊結點的關鍵字數大于4,分裂

③B樹的刪除

B樹的插入比插入稍復雜些,只要牢記B樹應該滿足的條件,就能夠解題。下面我們來看一個B樹刪除關鍵字的例子:

01

刪除19,19所在結點所剩關鍵字個數大于2,則可以直接刪除

02

刪除30,30不是葉子結點,不能直接刪除。這種情況的規則:30是非葉子結點,對于非葉子結點的刪除,我們需要用后繼的關鍵字覆蓋要刪除的關鍵字,然后在后繼關鍵字所在的分支中刪除該關鍵字。對于刪除30,需要將后繼元素32移到被刪除的30所在的結點。

此時發現35所在的結點只有一個關鍵字,小于2個,這時候的規則是(向兄弟結點借元素):如果刪除葉子結點,如果刪除元素后元素個數少于(m/2),并且它的兄弟結點的元素大于(m/2),也就是說兄弟結點的元素比最少值m/2還多,將先將父結點的元素移到該結點,然后將兄弟結點的元素再移動到父結點。

03

刪除40,刪除后不滿足B樹要求。需要考慮向兄弟結點借元素,但兄弟結點也沒有多的結點(2個),借不了。若遇到這樣的情況,還是將先將父結點的元素移到該結點,然后,將當前結點及它的兄弟結點中的關鍵字合并,形成一個新的結點。

再與兄弟結點合并

2

B+樹

①定義與性質

B樹與B+樹有很多相似之處:

01

根結點所含關鍵字范圍:1 <= k <= m-1?

02

非根結點所含關鍵字范圍:m/2 <= k <= m-1

不同點:

01

B+樹有兩種類型的結點:內部結點(也稱索引結點)和葉子結點。內部結點就是非葉子結點,內部結點不存儲數據,只存儲索引,數據都存儲在葉子結點。

02

內部結點中的關鍵字都按照從小到大的順序排列,對于內部結點中的一個關鍵字,左樹中的所有關鍵字都小于它,右子樹中的關鍵字都大于等于它。葉子結點中的記錄也按照關鍵字的大小排列。

03

每個葉子結點都存有相鄰葉子結點的指針,葉子結點本身依關鍵字的大小自小而大順序鏈接。?

04

父結點存有右孩子的第一個元素的索引。

下面我們來看一顆B+樹,感受一下它和B樹的區別。

②B+樹的插入

B+插入操作很簡單,掌握一個要點即可:當結點關鍵字數量大于m-1的時候,按中間關鍵字分裂成左右兩部分,中間關鍵字分裂到父結點當做索引存儲,但是,中間的關鍵字自身還是分裂右邊結點這一部分的。下面給大家舉一個B+樹的插入例子:向一顆5階的B+樹中插入元素。分析:5階B+樹的結點中最少2個關鍵字,最多4個關鍵字。

01

插入10,16,22,28

?

02

插入30,此時該結點的關鍵字數量大于4個了,進行結點分裂

03

接著插入35,39,結點繼續分裂?

③B+樹的插入

對于刪除操作是比B樹簡單一些的,由于葉子結點有指針的存在,向兄弟結點借元素時,不需要通過父結點了,而是可以直接通過兄弟節移動即可(前提是兄弟結點的元素大于m/2),然后更新父結點的索引;如果兄弟結點的元素不大于m/2(兄弟結點也沒有多余的元素),則將當前結點和兄弟結點合并,并且刪除父結點中的關鍵字。下面我們來看一個例子:初始狀態B+樹:

01

刪除22,刪除后,發現B+樹不滿足要求,且左邊兄弟結點的關鍵字個數夠借,借關鍵字后再修改父結點索引。

?

02

刪除元素28,發現B+樹不滿足要求,并且發現左右兄弟結點都沒有多余的關鍵字可借,此時選擇與其兄弟結點合并再修改父結點索引。

此時,其父結點(30)也不滿足B+樹條件,故將結點30與其兄弟結點進行合并

03

相關習題

01

(2012年統考)已知一棵三階B樹,如下圖所示刪除關鍵字78得到一棵新B樹,其?最右葉結點中的關鍵字是()?

A、60

B、?60, 62

C、62, 65

D、65

(點擊選項查看答案)Tips:根據B樹應滿足的條件以及刪除B樹結點的準則即可解題。

02

(2016年統考)B+樹不同于B樹的特點之一是()

A、能支持順序查找

B、?結點中含有關鍵字

C、根結點至少有兩個分支

D、所有葉結點都在同一層上

(點擊選項查看答案)Tips:B+樹的葉結點包含了全部關鍵字信息,且按大小排列,故B+樹支持順序查找。B樹只支持多路查找。

03

(2018年統考)高度為5的3階B樹含有的關鍵字個數至少是()

A、15

B、31

A、解放思想

B、與時俱進

C、實事求是

D、持續穩定

C、62

D、242

(點擊選項查看答案)Tips:3階B樹的非根結點所包含的關鍵字個數最少是2個,而根結點最少包含1個關鍵字,這樣的樹型相當于一棵高度為5的滿二叉樹,利用公式計算出其包含的關鍵字個數最少是31。

計算機考研qq群

總群:625590924

廣大:1143982604

暨大:1071137230

廣工:938111325

華工:428389734

深大:729770764

浙大:978938582

廈大:1125268501

中大:921801084

南航:281118241

華農:515681663

重郵:736197896

北郵:1126650806

南郵:1109929146

廣外:976231252

東北大學:1128523098

華南師大:428389734

南昌大學:923249141

給個“在看”支持一下我

總結

以上是生活随笔為你收集整理的高度为5的3阶b树含有的关键字个数_数据结构要考得好,你心里要有B树的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。