[理工] 101交大 資演 第1大題 第2題

作者: Paravion (ElonMusk)   2018-01-23 15:42:20
題目
https://i.imgur.com/35Y4BOm.jpg
爬文很少遇到第一題就卡關的
追蹤順序如下
按照題目的要求一開始 r=20
20有左子樹18所以遞歸unknown(18)
18有左子樹13所以遞歸unknown(13)
13沒有左子樹所以繼續往下走
13有右子樹3所以遞歸unknown(3)
3沒有左子樹所以繼續往下走
3沒有右子樹所以繼續往下走
q=p->left; //將3的左子樹賦值給q,3的左子樹是NULL所以q也是NULL
p->left = p->right; // 將3的右子樹賦值給左子樹,3的右子樹是NULL所以左子樹賦值完也是NULL
p->right=q; //將q賦值給3的左子樹,q是NULL所以左子樹賦值完也是NULL
結束
這一題的code看起來是要進行左右子樹交換
但是一路call到最下層卻要到左右子樹皆NULL的node才不會跳出
最後做三行沒意義的NULL=NULL程式就跳出了
請問我的追蹤過程是否有誤?
作者: djmez   2018-01-23 15:46:00
被呼叫的遞迴結束回呼叫的下一行繼續執行你的unknown(13)看到unknown(3)就會從第四行繼續跑下去了unknown(18)也是比照辦理
作者: Paravion (ElonMusk)   2018-01-23 16:11:00
了解 感謝回覆
作者: bightm80144 (Sky老玻璃杯)   2018-01-23 17:06:00
請問一下第一大題的答案是?是CEB嗎
作者: djmez   2018-01-23 17:10:00
CEB沒錯
作者: bightm80144 (Sky老玻璃杯)   2018-01-23 17:17:00
謝謝!

Links booklink

Contact Us: admin [ a t ] ucptt.com