作者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/cn.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