表示式轉換

2021-08-28 13:13:59 字數 1153 閱讀 1096

7-1 表示式轉換 (25 分)

算術表示式有字首表示法、中綴表示法和字尾表示法等形式。日常使用的算術表示式是採用中綴表示法,即二元運算子位於兩個運算數中間。請設計程式將中綴表示式轉換為字尾表示式。

輸入在一行中給出不含空格的中綴表示式,可包含+-*\以及左右括號(),表示式不超過20個字元。

在一行中輸出轉換後的字尾表示式,要求不同物件(運算數、運算符號)之間以空格分隔,但結尾不得有多餘空格。

2+3*(7-4)+8/4
2 3 7 4 - * + 8 4 / +
資料: 

序號輸入輸出1

2+3*(7-4)+8/4
2 3 7 4 - * + 8 4 / +

2

((2+3)*4-(8+2))/5
2 3 + 4 * 8 2 + - 5 /

3

1314+25.5*12
1314 25.5 12 * +

4

-2*(+3)
-2 3 *

5

123
123

#include using namespace std;

mapma;

stackst;

int main()

else if(x)

else if(!x)

}else

else

}else if(s[i]=='+')

}if(s[i]=='(')

else if(s[i]==')')

st.pop();

}else if(st.empty()||(!st.empty()&&st.top()=='('))

else if(ma[s[i]]st.push(s[i]);

}else if(ma[st.top()]==2&&ma[s[i]]==2)

else}}

while(!st.empty())

cout

}

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

算術表示式有字首表示法 中綴表示法和字尾表示法等形式。日常使用的算術表示式是採用中綴表示法,即二元運算子位於兩個運算數中間。請設計程式將中綴表示式轉換為字尾表示式。輸入格式 輸入在一行中給出不含空格的中綴表示式,可包含 以及左右括號 表示式不超過20個字元。輸出格式 在一行中輸出轉換後的字尾表示式,...

表示式轉換

2 3 7 4 8 4 2 3 7 4 8 4 思路 a.若為 入棧 b.若為 則依次把棧中的的運算子加入字尾表示式中,直到出現 從棧中刪除 c.若為 除括號外的其他運算子,當其優先順序高於除 以外的棧頂運算子時,直接入棧。否則從棧頂開始,依次彈出比當前處理的運算子優先順序高和優先順序相等的運算子,...

表示式轉換

算術表示式有字首表示法 中綴表示法和字尾表示法等形式。日常使用的算術表示式是採用中綴表示法,即二元運算子位於兩個運算數中間。請設計程式將中綴表示式轉換為字尾表示式。輸入在一行中給出不含空格的中綴表示式,可包含 以及左右括號 表示式不超過20個字元。在一行中輸出轉換後的字尾表示式,要求不同物件 運算數...