[問題] 二元樹。

看板C_and_CPP (C/C++)作者 (東方一隻鹿)時間15年前 (2010/08/23 18:13), 編輯推噓-2(029)
留言11則, 2人參與, 最新討論串1/1
( *[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)

08/23 20:00, , 1F
pretrav_show 裡面應該是遞迴呼叫自己, 而不是呼叫
08/23 20:00, 1F

08/23 20:00, , 2F
pretrav, 縮排要加強一下, else if 的地方很亂, 沒有
08/23 20:00, 2F

08/23 20:01, , 3F
表達階層的關係
08/23 20:01, 3F

08/24 20:51, , 4F
我是知道遞迴是呼叫自己啊...所以才問怎麼遞迴函式自己卻
08/24 20:51, 4F

08/24 20:51, , 5F
總是印不出我想要的...看來好像很多人會看得霧煞煞
08/24 20:51, 5F

08/24 20:52, , 6F
我還是乖乖用堆疊去解好了= = 稍後在整理一下程式碼吧
08/24 20:52, 6F

08/24 20:53, , 7F
之後有問題我再重發吧
08/24 20:53, 7F

08/24 21:11, , 8F
問題就在你pretrav_show根本沒有沒有遞迴呼叫自己
08/24 21:11, 8F

08/24 21:13, , 9F
你真的懂你的程式碼嗎?
08/24 21:13, 9F

08/24 23:40, , 10F
我發現我眼殘= = 我本來就想要讓他自己呼叫 結果單純複製
08/24 23:40, 10F

08/24 23:42, , 11F
就忘了裡面忘了改 好吧抱歉沒注意 也難怪沒人想回
08/24 23:42, 11F
文章代碼(AID): #1CSad4UO (C_and_CPP)
文章代碼(AID): #1CSad4UO (C_and_CPP)