Re: [理工] [資結]2-3 Tree的老問題!!!(修正)

看板Grad-ProbAsk作者 (小總)時間15年前 (2011/01/28 20:42), 編輯推噓1(105)
留言6則, 1人參與, 最新討論串1/1
抱歉昨晚算錯了 修正第一題錯誤 第二題我改成詳細版(刪除後插入不一定會一樣,下面幾篇有人給例子) ※ 引述《st84514 (綜合水果武士)》之銘言: : 有一2-3 tree如下: : 19.35 : / | \ : 11.15 25 42 : / | \ / \ / \ : 7.8 13 18 24 27.30 39 46 : 想問delete15的結果! : 我的步驟是(1)delete15 : (2)取13往上拉 : (3)8.11作rotation : 結果: : 19.35 : / | \ : 8.13 25 42 : / | \ / \ / \ : 7 11 18 24 27.30 39 46 : 是否正確? step1.刪除non-leaf是把該node的左子樹最大值(13)或右子樹最小值(18)拉去補 step2.就是leaf underflow的處理 所以會有兩個答案 ans1(用13補) 19.35 / | \ 11.13 25 42 ->(rotation) 8.13 (其它位置沒變) / | \ / \ / \ / | \ 7.8 18 24 27.30 39 46 7 11 18 ans2(用18補) 19.35 / | \ 11.18 25 42 ->(combine) 11    (其它位置沒變) / | \ / \ / \ / \ 7.8 13 24 27.30 39 46 7.8 13.18 : 又有一2-3 tree如下: : 19.35 : / | \ : 8.13 27 42 : / | \ / \ / \ : 7 11 18 25 30 39 46 : 想問delete25的結果! : 我的步驟是(1)delete25 : (2)27下拉與30 combine : (3)這步驟我有點疑惑我是用35跟42 combine! : 因為我覺得若將13.19作rotation左子樹會錯誤,11.18的部分 : 結果: : 19 : / \ : 8.13 35.42 : / | \ / | \ : 7 11 18 27.30 39 46 : 想請問是否正確!有請高手解答!謝謝! 用13.19 combine沒問題 step1.(combine) step2.(rotation) 19.35 13.35 / | \ / | \ 8.13 42 8 19 42 / | \ | / \ / \ / \ / \ 7 11 18 27.30 39 46 7 11 18 27.30 39 46 和AVL TREE一樣,父點改變會使下面的LINK有些調動 所以在2.rotation後,在依據正確的去聯接子點 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.254.203.20

01/28 21:34, , 1F
那第二題的第三步應該roration還是combine?我覺得不能
01/28 21:34, 1F

01/28 21:35, , 2F
combine是因為11.18會無對應的父點,所以可以照你這樣做然
01/28 21:35, 2F

01/28 21:35, , 3F
後把18接到19那喔?
01/28 21:35, 3F

01/28 21:38, , 4F
說錯了,我是說我覺得不能roration
01/28 21:38, 4F

01/28 22:36, , 5F
我發現你畫的第一題11.13好像錯了,第二題若插入25驗算也跟
01/28 22:36, 5F

01/28 22:36, , 6F
原來不一樣
01/28 22:36, 6F
※ 編輯: skyevolution 來自: 111.254.203.20 (01/29 04:31)
文章代碼(AID): #1DGhd6wE (Grad-ProbAsk)