iT邦幫忙

2022 iThome 鐵人賽

DAY 19
0
Software Development

資料結構 - 我好想懂阿!30 天系列系列 第 19

資料結構 - 我好想懂阿!30 天系列 (19) - B+ Tree of order m

  • 分享至 

  • xImage
  •  

前言

本章節要講解 B+ Tree of order m,而此資料結構,是 B Tree of order m 的變形,如果還不熟悉,要先回去複習前面的章節唷

定義

在 B tree of order m 的時候,我們有寫過 degree 和 key 的限制
而現在看到 B+ Tree of order m,我們將其分為兩個層次

  1. index 層:採用 B tree of order m 之結構
  2. data 層:可採用 B tree of order m,也可以不採用。此外每個 data block 會使用 linkedlist 串起來
    那以下我們在舉例以及講解的部分,無論是 index 層或是 data 層都採用
    https://ithelp.ithome.com.tw/upload/images/20221003/20151910JK1hOarsRK.png

操作

insert x

在進行 B+ Tree of order m 的插入的話,都是針對 data 層去進行資料的更新
以下圖 B+ Tree of order 3 插入 16 為例
https://ithelp.ithome.com.tw/upload/images/20221003/20151910pDDl3bWUKj.png

delete x

在進行 B+ Tree of order m 的刪除的話,也都是針對 data 層去進行資料的更新
以下圖 B+ Tree of order 3 刪除 15 為例
underflow 且右兄可以借 key,因此作 Rotation
https://ithelp.ithome.com.tw/upload/images/20221003/20151910WGUoAlUKXV.png
此外,因為index 15沒用了,我們可以考慮把它換成5


上一篇
資料結構 - 我好想懂阿!30 天系列 (18) - B Tree of order m
下一篇
資料結構 - 我好想懂阿!30 天系列 (20) - AVL Tree
系列文
資料結構 - 我好想懂阿!30 天系列30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言