Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Indexing B+的设计、插入和删除问题;树值_Indexing_Nodes_Insertion_B Plus Tree - Fatal编程技术网

Indexing B+的设计、插入和删除问题;树值

Indexing B+的设计、插入和删除问题;树值,indexing,nodes,insertion,b-plus-tree,Indexing,Nodes,Insertion,B Plus Tree,关于我的家庭作业,我有一个问题: 1) 首先,假设一个内部节点可以容纳4个指针,每个叶节点可以存储4个键值,那么B+树应该用以下值构造: 2,3,5,7,11,17,19,23,29,31 我收到了下面的树。我不确定它是否正确,因为在叶节点中,可能有三个键值: 问题从插入和删除开始。因此,插入9、10、8,我收到了下面的树: 但当我删除23时,我的描述如下。问题是,19不能单独存在,因为叶子必须半满: 之后删除19会产生相同的问题: 问题是: 1) 初始树是否正确 2) 我关于删除的假设

关于我的家庭作业,我有一个问题:

1) 首先,假设一个内部节点可以容纳4个指针,每个叶节点可以存储4个键值,那么B+树应该用以下值构造:

2,3,5,7,11,17,19,23,29,31

我收到了下面的树。我不确定它是否正确,因为在叶节点中,可能有三个键值:

问题从插入和删除开始。因此,插入9、10、8,我收到了下面的树:

但当我删除23时,我的描述如下。问题是,19不能单独存在,因为叶子必须半满:

之后删除19会产生相同的问题:

问题是:

1) 初始树是否正确

2) 我关于删除的假设正确吗

3) 删除后的树必须是什么样子


关于。

删除23后,如果叶节点的键数少于n/2,则该叶节点不存在是正确的。B+树中的删除基本上有3种情况:

情况1:节点仍有超过n/2个键;无需更改。

如果节点的键数少于n/2

情况2:从相邻叶节点借用密钥。更新父节点。

如果我的邻居都没有足够的钱给我一把钥匙

情况3:与相邻叶节点合并。更新父节点。

在删除键23的情况下,包含键19的节点将希望与其任何一个邻居合并。合并后,请记住更新父节点