[問題] 用sturct做的linked list實作stack問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
小弟我最近再練習資料結構的東西
現在寫到用linked list 做stack
照著書本打的結果
把infix 轉成postfix表示輸出的時候出了一點小問題
並不是什麼太大的錯誤
只是個人有點龜毛
測試過的結果是我linked list初始化的問題
但是我不曉得要怎麼初始化才不會多出那個空格
這個有辦法解嗎?
餵入的資料(Input):
1-1+1-1+1
預期的正確結果(Expected Output):
1 1 - 1 + 1 - 1 +
(數字跟數字 / 符號之間都是一個空格)
錯誤結果(Wrong Output):
1 1 - 1 + 1 - 1 +
^這裡多了一個空格
程式碼(Code):(請善用置底文網頁, 記得排版)
struct Node //Node 宣告
{
char data;
Node *next;
};
struct Node* init(Node *ptr) //初始化的宣告
{
ptr -> data = '\0';
ptr -> next = NULL;
return ptr;
}
保險起見附上整個檔案
http://ppt.cc/7hjE
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.202.108
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1408263792.A.AE5.html
※ 編輯: jack710619 (36.239.202.108), 08/17/2014 16:27:02
推
08/17 21:14, , 1F
08/17 21:14, 1F
→
08/17 21:15, , 2F
08/17 21:15, 2F
→
08/17 21:15, , 3F
08/17 21:15, 3F
→
08/17 21:16, , 4F
08/17 21:16, 4F
→
08/17 21:17, , 5F
08/17 21:17, 5F
→
08/17 21:17, , 6F
08/17 21:17, 6F
→
08/17 21:18, , 7F
08/17 21:18, 7F
輸出的時候中間的空格是方便閱讀
不然 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
→
08/17 21:39, , 8F
08/17 21:39, 8F
→
08/17 21:39, , 9F
08/17 21:39, 9F
推
08/17 21:41, , 10F
08/17 21:41, 10F
→
08/17 21:42, , 11F
08/17 21:42, 11F
→
08/17 21:42, , 12F
08/17 21:42, 12F
→
08/17 21:42, , 13F
08/17 21:42, 13F
→
08/17 21:43, , 14F
08/17 21:43, 14F
→
08/17 21:43, , 15F
08/17 21:43, 15F
→
08/17 21:45, , 16F
08/17 21:45, 16F
→
08/17 21:45, , 17F
08/17 21:45, 17F
→
08/17 22:00, , 18F
08/17 22:00, 18F
呃......
忘記講
我 init 那邊如果 ptr return NULL 會直接當掉= ="
所以初始設NULL也是不行......
看來只能試著在輸出的時候調整看看了
※ 編輯: jack710619 (111.242.72.215), 08/17/2014 22:08:12
→
08/17 22:21, , 19F
08/17 22:21, 19F
→
08/17 22:36, , 20F
08/17 22:36, 20F
→
08/17 22:36, , 21F
08/17 22:36, 21F
推
08/19 00:19, , 22F
08/19 00:19, 22F
我後來也是把code 改成那樣
然後在push 裡面加判斷式
※ 編輯: jack710619 (36.237.224.43), 08/19/2014 09:05:50