高度为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树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux挂载cifs磁盘_linux使
- 下一篇: c语言存储结构的实现,(C语言)栈的链式