看板 C_and_CPP 關於我們 聯絡資訊
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 原程式 左邊放小數 右邊放大數 修改成 每輸入一個數字,就用pretrav() 秀出樹的狀態 希望得到的正確結果: 3 ================ node left right 3 -1 -1 ================ 4 ================ node left right 3 -1 4 4 -1 -1 ================= _ 程式跑出來的錯誤結果: 3 ================ node left right 3 -1 -1 ================ 4 ================ node left right 3 -1 4 4 ================= _ 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) dev_c++ 有問題的code: (請善用置底文標色功能) http://nopa.csie.org/d8b42 補充說明: 一開始的程式是所有數字輸入完後 CTRL+z 在ENTER 就可以完整找出所有結點 但這個程式 只有動到pretrav()另外複製 和 int main() 最後那幾行 那個多出來的數字我也不太曉得怎麼來的 故意註解 55行 printf("%d ", tree->info); // visit the root 也還是跑出那種多出的數字 先問到這吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.96.206 ※ 編輯: calqlus 來自: 118.171.96.206 (08/23 18:13)
loveme00835:pretrav_show 裡面應該是遞迴呼叫自己, 而不是呼叫 08/23 20:00
loveme00835:pretrav, 縮排要加強一下, else if 的地方很亂, 沒有 08/23 20:00
loveme00835:表達階層的關係 08/23 20:01
calqlus:我是知道遞迴是呼叫自己啊...所以才問怎麼遞迴函式自己卻 08/24 20:51
calqlus:總是印不出我想要的...看來好像很多人會看得霧煞煞 08/24 20:51
calqlus:我還是乖乖用堆疊去解好了= = 稍後在整理一下程式碼吧 08/24 20:52
calqlus:之後有問題我再重發吧 08/24 20:53
loveme00835:問題就在你pretrav_show根本沒有沒有遞迴呼叫自己 08/24 21:11
loveme00835:你真的懂你的程式碼嗎? 08/24 21:13
calqlus:我發現我眼殘= = 我本來就想要讓他自己呼叫 結果單純複製 08/24 23:40
calqlus:就忘了裡面忘了改 好吧抱歉沒注意 也難怪沒人想回 08/24 23:42