[理工] 102交大資聯[DS] 第四題

看板Grad-ProbAsk作者 (silver2024)時間10年前 (2014/02/10 18:57), 編輯推噓6(6024)
留言30則, 5人參與, 最新討論串1/1
http://imgur.com/QVwwMPT
題目是說這個程式要跑preorder traversal 而且好像是用thread binary tree 前面1-4行是在確認有無左右兒子 可是line6就不知道該填什麼...(註釋好像是中序後繼者!?) line7的註釋完全不知道在說什麼... 根本繞口令... 想請問一下line6該填什麼? 可以的話,稍微解釋一下為何line6要填那個答案 麻煩各位了~感謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.218.198.165

02/10 19:25, , 1F
感覺是 Node=(Node->rchild)->rchild;
02/10 19:25, 1F

02/10 19:44, , 2F
trace一下後不是很懂,return出來的東西是直接print嘛?
02/10 19:44, 2F

02/10 20:40, , 3F
另外有問到別的答案,我同學是寫 node=node->rchild;
02/10 20:40, 3F

02/10 20:41, , 4F
剛try了例子,兩種我都無法作出preorder..
02/10 20:41, 4F

02/10 20:42, , 5F
希望可以講解一下怎麼trace @@
02/10 20:42, 5F

02/10 21:15, , 6F
答案就你同學寫的,我也覺得這提很怪
02/10 21:15, 6F

02/10 21:16, , 7F
但如果照他斜線提示 就直接這樣寫 很單純
02/10 21:16, 7F

02/10 21:17, , 8F
我剛trace 可以, n->rchild永遠是中序後繼者
02/10 21:17, 8F

02/10 21:17, , 9F
如果沒有右子點, bool會true 然後指到中序後繼
02/10 21:17, 9F

02/10 21:18, , 10F
有右子點, 右子點就是中序後繼者
02/10 21:18, 10F

02/10 21:18, , 11F
這題是要前序後繼者不是?
02/10 21:18, 11F

02/10 21:23, , 12F
函數是要preorder但註解有提示你用中序後繼
02/10 21:23, 12F

02/10 21:24, , 13F
是用中序後繼者作preorder traversal
02/10 21:24, 13F

02/10 21:29, , 14F
我用我的好像對,而且他下面的註解不就是,用node的中序
02/10 21:29, 14F

02/10 21:29, , 15F
後繼的中序後繼。
02/10 21:29, 15F

02/10 21:33, , 16F
我是聽洪逸的, of the inorder successor是多打的XD
02/10 21:33, 16F

02/10 21:37, , 17F
剛trace兩三個好像對,大概吧。
02/10 21:37, 17F

02/10 22:01, , 18F
原來是多打的= = 想說怎麼這麼繞舌...
02/10 22:01, 18F

02/10 22:02, , 19F
感謝兩位大大幫忙!! 我再try看看
02/10 22:02, 19F

02/10 22:20, , 20F
我剛用一個例子trace過,好像真的是W大所說的那樣
02/10 22:20, 20F

02/10 22:21, , 21F
不知道這樣有沒有錯
02/10 22:21, 21F

02/10 22:34, , 22F
那個不是多打的,我trace過了,那是對的。
02/10 22:34, 22F

02/10 22:43, , 23F
第6行叫我們找中序後繼者,所以第七行是說叫我們找出第6行
02/10 22:43, 23F

02/10 22:43, , 24F
那個中序後繼者的中序後繼者的中序後繼者。
02/10 22:43, 24F

02/10 22:45, , 25F
假設第6行找到的是E,下面的程式就會把E的中序後繼者的中
02/10 22:45, 25F

02/10 22:45, , 26F
序後繼者找出來,也就是C。
02/10 22:45, 26F

02/10 22:47, , 27F
註釋第七行重複說了一次,第六行已經作了,理解成有沒有
02/10 22:47, 27F

02/10 22:47, , 28F
打都可以的樣子
02/10 22:47, 28F

02/10 22:54, , 29F
少看最後一行,確實一次即可。
02/10 22:54, 29F

02/11 09:39, , 30F
第六行也可以不寫 但是題目要求就還是寫吧..
02/11 09:39, 30F
文章代碼(AID): #1I-B25W7 (Grad-ProbAsk)