先提出疑问
1.请问2-3或者2-3-4 Overflow 是怎么判断?
(A)在插入后,检查是否Overflow,才Split
(B)在插入前,就把所经过的 Node 都先Split(后面有例子)
有点像是红黑树若经过有两个红子点,要先 Color change
2.要往父点拉的值是怎么选择?
(C)在插入对应的顺序后,才开始找
假设2-3-4 Tree现在有{13,14,15},Insert(12)后,{12,13,14,15}overflow,
选择{13}上去父点,{12}、{14,15}当子点
(D)在插入前,先Split,选{14}上去当父点,{12,13}、{15} 当子点
3.2-3 Tree 跟 2-3-4 Tree 的Insertion 本来就不一样吗?
直接来看题目,这题2-3 Tree是用(A)+(C)
看前三个数字 10 9 8就好
当8插入后,发现Overflow,选择第二个值 9 往上拉
https://i.imgur.com/RJYDiuW.jpg
https://i.imgur.com/Pw0JUJH.jpg
再来是这题2-3-4 Tree
106台大电机丙的资料结构
要采用(B)+(D)才有答案...
https://i.imgur.com/CHseQQu.jpg
http://i.imgur.com/70KGZUq.jpg
转自yorunohoshi大大的图片
在插入12之前,就先Split了,就是我上面的例子
可以看这篇文章下面的讨论
https://www.ptt.cc/bbs/Grad-ProbAsk/M.1486893104.A.3B6.html
还是...这些问题都不存在? 我哪边又想错惹@@
请各位大大开导一下...