Re: [Java][DS]中序轉後序式
標題Re: [Java][DS]中序轉後序式
時間北極光 (2009/10/28 Wed 12:02:53)
※ 引述《Tony1223 (Doing What I do!)》之銘言: 手算演算法模擬 簡單描述一下流程 拿個比較難的例子好了 1+31*2-5+7 1.拆token -> [1,+,31,*,2,-,5,+,7] 2. 依序把token 拿出來做處理 (建stack) 處理的步驟依照以下狀況處理 1.碰到.碰到數字直接印 2.碰到運算子就考慮優先權 所以是 token 處理狀況 1 -> stack [ ] output "1" + -> stack[+] output "1" 31 -> stack[+] output "1 31" * -> 因為+ 優先權小於 * 所以 放進stack stack [ + ,* ] output"1 31" 2 -> stack[ + , * ] output "1 31 2" - -> 因為 * 優先權比 - 大 , 所以 * 要先pop出來 , stack [ + , - ] output "1 31 2 * " 5 -> stack [+ , - ] output "1 31 2 * 5" + -> 因為+跟-優先權相同, 相同時就pop出來 , stack [+,+] output "1 31 2 * 5 - " 7 -> stack [+ ,+ ] output "1 31 2 * 5 - 7 " 跑到結束了 , 把stack的都pop出來 所以是 output "1 31 2 * 5 - 7 + + " 就是這樣的運算過程 流程看懂了就剩搞懂程式要怎麼寫了 -- ▄▅▆▇███▇▆▅▄▃ ╰┼╯─╮ ╮ ◥███████████◣ ╰┼╯=│=│ ◥██████───────◣ *.╯ ╯ ╯ の物語.* ◥███████──────◣~◢◣ ◢◣ ◥██████───────◤ ◥◤* 空白的世界.翼 *◥◤ ◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂~telnet://tony1223.no-ip.info -- ╭═ Origin ─═ 北極光 aurora.twbbs.org κλμ ─╣ ╚─ Author ═─ 114-137-4-198.dynamic.hin
Comments
No approved comments yet.