計算中綴表示式的方法

2022-08-31 23:36:21 字數 828 閱讀 8549

#include #include 

#include

#include

#include

using

namespace

std;

struct

node

;string

str;

stack s;

queue q;

mapm;

void change() //

中綴表示式轉換為字尾表示式

q.push(temp);

}else

if(str[i]=='')

else

temp.op =str[i];

s.push(temp);

++i;}}

while(!s.empty()) //

轉換結束後棧為空,佇列儲存的是乙個完整的字尾表示式

}double

cal()

else

if(head.flag == 0

)

else

if(head.op == '-'

)

else

if(head.op == '*'

)

else

if(head.op == '

/') //

有可能出現除以零的非法,要特判,不過這裡沒寫

s.push(c);}}

return

s.top().num;

}int

main()

計算中綴表示式

計算中綴表示式 可以稱得上是乙個特別經典的關於棧的演算法題,幾乎在所有資料結構教材中都會涉及,而且很多公司面試或者筆試的時候都會把這道題作為乙個考察點。可以說,這是一道必須要掌握的演算法題。中綴表示式 字尾表示式等概念在這裡就不贅述了,讓我們直奔主題。題目 輸入乙個中綴表示式,計算其結果。輸入的前提...

中綴表示式計算

雙棧法 數字棧和運算子棧 1.從前向後遇見數字就壓入數字棧 2.遇見左括號壓棧 3.遇見右括號則彈出數字棧頂兩個數字,和乙個運算子棧乙個運算子進行計算,直至遇見左括號,退括號,計算結果壓棧 4.遇見運算子,若符號棧頂的元素小於當前運算子優先順序,則入棧 若相等或大於則數字彈出倆,符號彈出乙個計算,直...

中綴表示式 字首表示式 字尾表示式 的計算方法

35,15,80,70,20,字尾表達方式 35 15 80 70 20 25 中綴表達方式 35,15,80,70,20 字首表達方式 人們習慣的運算方式是中綴表示式。而碰到字首,字尾方式。迷茫 其實僅僅是一種表示式子的方式而已 不被你習慣的方式 乙個中綴式到其他式子的轉換方法 這裡我給出乙個中綴...