作者Aa841018 (andrew)
看板Grad-ProbAsk
標題[理工] 資結題庫5-64!
時間Sat Sep 21 06:08:59 2019
https://i.imgur.com/J8W8m8Y.jpg
想請問一下例題40…看完題目,還蠻不知道該怎麼想這題!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.12.94.10 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1569017341.A.C6B.html
※ 編輯: Aa841018 (39.12.94.10 臺灣), 09/21/2019 06:09:25
1F:推 mi981027: 可以簡單看看這幾種方法的差別 09/21 06:31
2F:→ mi981027: inorder是先往左走,再看值,再往右走 09/21 06:31
3F:→ mi981027: preorder是先看值,再往左,再往右 09/21 06:31
4F:→ mi981027: 所以假設今天想刪掉node a底下的subtree, 使用inorder 09/21 06:31
5F:→ mi981027: 走的話就會變成,明明已經traverse到那個點了,卻一路 09/21 06:31
6F:→ mi981027: 往左繼續走,而不是直接刪掉 09/21 06:31
7F:→ mi981027: 但用preorder來走,只要一看發現經過node a了,就可以 09/21 06:31
8F:→ mi981027: 直接刪掉了 09/21 06:31
9F:→ Aa841018: 那level order呢?應該就沒有必須一直往下走的問題了 09/21 06:46
10F:推 mi981027: 我的想法是這樣的,有錯還請指正 09/21 08:17
11F:→ mi981027: 因為binary tree分成array跟用pointer做linking的建法 09/21 08:17
12F:→ mi981027: 通常只有complete binary tree才會使用array來建構 09/21 08:17
13F:→ mi981027: 一般情況都是建一個struct node, 以pointer的方式實現 09/21 08:17
14F:→ mi981027: 這種情況下除非是新增sibling link,不然根本很難做到le 09/21 08:17
15F:→ mi981027: vel order的traversal 09/21 08:17
16F:推 DLHZ: 推 09/21 10:09
17F:推 joey11121: 借問個,那為什麼preorder還是比postorder適合呢? 09/21 18:22
18F:→ DLHZ: 原因一樣吧 我能早點取就早點結束 09/21 19:41
19F:推 joey11121: 了解了,感謝樓上 09/21 20:01
20F:→ Aa841018: 謝謝m大解說 09/21 21:33