Indexing B+的设计、插入和删除问题;树值
关于我的家庭作业,我有一个问题: 1) 首先,假设一个内部节点可以容纳4个指针,每个叶节点可以存储4个键值,那么B+树应该用以下值构造: 2,3,5,7,11,17,19,23,29,31 我收到了下面的树。我不确定它是否正确,因为在叶节点中,可能有三个键值: 问题从插入和删除开始。因此,插入9、10、8,我收到了下面的树: 但当我删除23时,我的描述如下。问题是,19不能单独存在,因为叶子必须半满: 之后删除19会产生相同的问题: 问题是: 1) 初始树是否正确 2) 我关于删除的假设正确吗 3) 删除后的树必须是什么样子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) 我关于删除的假设
关于。删除23后,如果叶节点的键数少于n/2,则该叶节点不存在是正确的。B+树中的删除基本上有3种情况: 情况1:节点仍有超过n/2个键;无需更改。 如果节点的键数少于n/2 情况2:从相邻叶节点借用密钥。更新父节点。 如果我的邻居都没有足够的钱给我一把钥匙 情况3:与相邻叶节点合并。更新父节点。 在删除键23的情况下,包含键19的节点将希望与其任何一个邻居合并。合并后,请记住更新父节点