推 stu87616: 你的堆疊預設會有一個以\0為資料的頭 在堆疊推出來的時 08/17 21:14
→ stu87616: 後會當作一個要輸出的單位 當然因為\0貼不出東西沒差 08/17 21:15
→ stu87616: 但是你又每次貼東西的時候都加一個空格(方便閱讀?) 08/17 21:15
→ stu87616: 所以就會導致堆疊在輸出\0的時候就多一個空格了 08/17 21:16
→ stu87616: 解決辦法應該是不要讓堆疊前面有一個\0當頭 只是這樣就 08/17 21:17
→ stu87616: 要寫pop push相關判定 當頭是空的時候會有點不一樣 08/17 21:17
→ stu87616: 或是貼東西的時候 順便的空格都拿掉 眼不見為淨 08/17 21:18
輸出的時候中間的空格是方便閱讀
不然 1123+-
到底是 1+12-3
還是 11+2-3 呢
所以我覺得中間的空格是必要的
至於多出來的空格
我也知道是那個 \0 在作怪
但是我真的不曉得要怎麼處理
當然換個方式宣告 linked list 就可以解決
但是我想問的是用 struct 建立的 linked list 有辦法解決嗎
雖然說真的不是什麼大問題 :P
※ 編輯: jack710619 (111.242.72.215), 08/17/2014 21:38:10
→ jack710619: 如果說像上面stu大大說的pop push相關判定 可以給小弟 08/17 21:39
→ jack710619: 一些方向嗎? 08/17 21:39
推 stu87616: 我的作法是初始設為NULL stack=NULL 08/17 21:41
→ stu87616: 然後push時要先判定stack是否為NULL 08/17 21:42
→ stu87616: 如果為NULL 就不是把新增的節點加在next 08/17 21:42
→ stu87616: 而是直接stack=newnode 這樣 08/17 21:42
→ stu87616: 不過老實說這樣整個code會變比較也比較醜(我認為) 08/17 21:43
→ stu87616: ^長 08/17 21:43
→ stu87616: 或是在最後輸出的時候檢查輸出字串 把那顆空節點和附屬 08/17 21:45
→ stu87616: 的空格刪掉也是蠻省事的作法 (我會這樣 08/17 21:45
→ jack710619: 原來如此,之後試試看 08/17 22:00
呃......
忘記講
我 init 那邊如果 ptr return NULL 會直接當掉= ="
所以初始設NULL也是不行......
看來只能試著在輸出的時候調整看看了
※ 編輯: jack710619 (111.242.72.215), 08/17/2014 22:08:12
→ jack710619: 結果我是把最開始的那個初始值pop掉...... 08/17 22:21
→ jack710619: 我懂stu大的意思了,是我會錯意了 ,明天來試試看,感 08/17 22:36
→ jack710619: 謝大大 08/17 22:36
推 ppc: Node *stack=NULL; init那行刪掉用不到 改這兩行就可以了 08/19 00:19
我後來也是把code 改成那樣
然後在push 裡面加判斷式
※ 編輯: jack710619 (36.237.224.43), 08/19/2014 09:05:50