[理工] 2-3 Tree以及2-3-4 Tree的Insertion
先提出疑問
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


再來是這題2-3-4 Tree
106台大電機丙的資料結構
要採用(B)+(D)才有答案...
https://i.imgur.com/CHseQQu.jpg


轉自yorunohoshi大大的圖片
在插入12之前,就先Split了,就是我上面的例子
可以看這篇文章下面的討論
https://www.ptt.cc/bbs/Grad-ProbAsk/M.1486893104.A.3B6.html
還是...這些問題都不存在? 我哪邊又想錯惹@@
請各位大大開導一下...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.83.128
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1548570005.A.531.html
推
01/27 16:52,
6年前
, 1F
01/27 16:52, 1F
推
01/27 17:38,
6年前
, 2F
01/27 17:38, 2F
推
01/27 17:40,
6年前
, 3F
01/27 17:40, 3F
→
01/27 17:41,
6年前
, 4F
01/27 17:41, 4F
→
01/27 19:11,
6年前
, 5F
01/27 19:11, 5F
→
01/27 19:11,
6年前
, 6F
01/27 19:11, 6F
推
01/27 19:22,
6年前
, 7F
01/27 19:22, 7F
答案是AB沒錯
推
01/27 20:28,
6年前
, 8F
01/27 20:28, 8F
→
01/27 20:28,
6年前
, 9F
01/27 20:28, 9F
→
01/27 20:28,
6年前
, 10F
01/27 20:28, 10F
→
01/27 20:30,
6年前
, 11F
01/27 20:30, 11F
幾乎都是Top-down
總結來說就是2-3 跟 2-3-4 做法不一樣...
這樣我知道了~感謝各位~
※ 編輯: jojoboy0115 (36.233.83.128), 01/27/2019 22:37:29
推
01/27 22:47,
6年前
, 12F
01/27 22:47, 12F
→
01/27 23:06,
6年前
, 13F
01/27 23:06, 13F
→
01/27 23:06,
6年前
, 14F
01/27 23:06, 14F
→
01/27 23:06,
6年前
, 15F
01/27 23:06, 15F
推
01/28 00:17,
6年前
, 16F
01/28 00:17, 16F
→
01/28 00:17,
6年前
, 17F
01/28 00:17, 17F
推
01/28 17:38,
6年前
, 18F
01/28 17:38, 18F