利用栈将中缀表达式转化成后缀表达式
生活随笔
收集整理的這篇文章主要介紹了
利用栈将中缀表达式转化成后缀表达式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目的:將中綴表達式(即標準形式的表達式)轉換為后綴式。
例子:a+b*c+(d*e+f)*g轉換成abc*+de*f+g*+
?
轉換原則
1. 遇到操作數(shù), 直接輸出
2. 操作符的優(yōu)先級為 () 最大, * / 次之, +- 最小. 遇到操作符后, 假如操作符堆棧為空, 則直接壓入操作符, 否則判斷當前操作符與棧頂操作符的優(yōu)先關系, 假如棧頂操作符的優(yōu)先級大于 等于當前操作符的優(yōu)先級, 那么彈出棧頂操作符, 持續(xù)彈出, 直到棧頂操作符優(yōu)先級小于當前操作符優(yōu)先級或棧為空. 最后將當前操作符入棧
3. 如果遇到右括號, 那么將棧頂操作符彈出, 持續(xù)彈出直到遇到左括號, 左括號彈出但不輸出
4. 表達式讀入完畢, 若棧不為空, 則持續(xù)彈出棧頂操作符, 直到棧為空
?
題目
1. 九度題目1019:簡單計算器
2. 九度題目1101:計算表達式
3. 九度題目1498:尋找表達式
轉載于:https://www.cnblogs.com/xinsheng/p/3591781.html
總結
以上是生活随笔為你收集整理的利用栈将中缀表达式转化成后缀表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法题1 大数字运算(输出时不显示前
- 下一篇: notepad++中的unexpecte