开发者

How to do B-Tree Insert

开发者 https://www.devze.com 2023-02-18 01:21 出处:网络
I am trying to insert 3 values into this B-Tree, 60, 61, and 62. I understand how to insert values when a node is full, and has an empty parent, but what if the parent is full?

I am trying to insert 3 values into this B-Tree, 60, 61, and 62. I understand how to insert values when a node is full, and has an empty parent, but what if the parent is full?

For example, when I insert 60 and 61, that node will now be full. I can't extend the parent, or the parent of the parent (because they are full). So can I change the values of the parent? I have provided an image of the B-tree prior to my insert, and after.

How to do B-Tree Insert

Attempt to insert 60, 61, 62:

How to do B-Tree Insert

Notice I changed the 66 in the root to 62, and added 62 to to the <72 node. Is this the correct way to do开发者_如何学编程 this?


With the insertion you've done, you get what's normally referred to as a B* tree. In a "pure" B-tree, the insertion when the root is full would require splitting the current root into two nodes, and creating a new root node above them (B-tree implementations do not require that root node to follow the same rule as other nodes for the minimum number of descendants, so having only two would be allowed).

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号