time limit: 1000ms memory limit: 65536k 有疑問?點這裡^_^
對於乙個基於二元運算子的算術表示式,轉換為對應的字尾式,並輸出之。
輸入乙個算術表示式,以『#』字元作為結束標誌。
輸出該表示式轉換所得到的字尾式。
a*b+(c-d/e)*f#
ab*cde/-f*+
#includeusing namespace std;
char op[10000];
char s[2000];
int judge(char c)
int main()
if(top==0)
if(judge(op[top])>=judge(s[i]))
op[++top]=s[i];
i++;
}else
else
op[++top]=s[i];
i++;}}
while(top)
printf("%c",op[top--]);
// printf("=\n");}}
return 0;
}
/*1 將中綴表示式轉換為字尾表示式的演算法思想:
2 ·當讀到數字直接送至輸出佇列中
3 ·當讀到運算子t時,
4 a.將棧中所有優先順序高於或等於t的運算子彈出,送到輸出佇列中;
5 b.t進棧
6 ·讀到左括號時總是將它壓入棧中
7 ·讀到右括號時,將靠近棧頂的左括號裡面的運算子全部出棧,再丟棄左括號。 */
棧之一般表示式轉換成字尾式
對於乙個基於二元運算子的算術表示式,轉換為對應的字尾式,並輸出之。輸入乙個算術表示式,以 字元作為結束標誌。輸出該表示式轉換所得到的字尾式。a b c d e f ab cde f include include include define maxsize 10000 define sizenum...
中綴表示式轉換成字尾表示式
一 基礎知識 中綴表示式 人們常用的表示式就叫做中綴表示式,如a b c d 字尾表示式 又叫做逆波蘭表示式,由一名波蘭數學家提出,方便進棧操作 字尾表示式也叫逆波蘭表示式,其求值過程可以用到棧來輔助儲存。假定待求值的字尾表示式為 6 5 2 3 8 3 則其求值過程如下 1 遍歷表示式,遇到的數字...
中綴表示式轉換成字尾表示式
中綴表示式轉字尾表示式 思路 三個方法 將中綴表示式轉換成 中綴表示式對應的 list 自定義運算子優先順序 將中綴表示式對應的 list 轉換成 字尾表示式.1.1 使用 list 更好的和 stack 配合,list 比 字串的遍歷更加靈活.將中綴表示式對應的 list 轉換成 字尾表示式 2....