![]() |
|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
![]() |
#4 (permalink) |
管理員
![]() ![]() |
![]() 2.if(item=='(')breakㄤ;,item 沒有內容怎麼會等於'('?
並非是沒有內容 ... 而是程式在逐步取得字元符號比對的時候,當 item 變數器的內容是 ( 時, 就執行 break 中斷某個迴圈執行 ... 語法:
if (is_operand(token)) postfix[j++] = token; else if (token == '(') push(token); else if (token == ')') while (S.top > -1) // if (item == '(') break; 是中斷這一個迴圈 { pop(&item); if (item == '(') break; postfix[j++] = item; } 3.為什麼會push(token)? 應該說 push(token) 的使用時機為何? 將 ( 放到堆疊裡,或是某的運算符號 放到堆疊裡 語法:
if (is_operand(token)) postfix[j++] = token; else if (token == '(') push(token); else if (token == ')') while (S.top > -1) { pop(&item); if (item == '(') break; postfix[j++] = item; } ... ... ... else if (is_operator(token)){ ... push(token); } 建議編寫不管是哪一種程式的原始碼,可以稍稍排版整理一下,如上 這樣子可以增加程式的易讀性,而且哪幾行一組,哪幾行是相關的, 哪幾行是一個 Function。 也可以利用註解幫助說明或是排版。 此帖於 2011-07-24 11:21 AM 被 getter 編輯. |
![]() |
送花文章: 37855,
![]() |
向 getter 送花的會員:
|
|
|
![]() |
||||
主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
討論 - 中序轉前序與後序問題 | 9319074 | 程式語言討論區 | 2 | 2009-10-23 07:41 AM |