對於乙個基於二元運算子的算術表示式,轉換為對應的字尾式,並輸出之。
輸入乙個算術表示式,以『#』字元作為結束標誌。
輸出該表示式轉換所得到的字尾式。
a*b+(c-d/e)*f#
ab*cde/-f*+
#include
#include
#include
#define maxsize 10000
#define sizenum 10000
typedef char element;
typedef struct
sq;int intistack(sq*l)
int panduan(char *a)
int empty(sq*l)
int push(sq*l,char *a)
*(++l->top)=*a;
return 0;
}int chuli(sq*l,char s)
l->top--;
continue;
}else if(panduan(&s[i])>panduan(l->top))//不是右括號則判斷優先順序
else if(panduan(&s[i])<=panduan(l->top))//優先順序小的分兩種情況
push(l,&s[i]);
}else//棧頂為左括號直接入棧}}
}while(l->top!=l->base)
printf("%c",*(l->top--));
return 0;
}int main()
一般算術表示式轉換成字尾式
time limit 1000ms memory limit 65536k 有疑問?點這裡 對於乙個基於二元運算子的算術表示式,轉換為對應的字尾式,並輸出之。輸入乙個算術表示式,以 字元作為結束標誌。輸出該表示式轉換所得到的字尾式。a b c d e f ab cde f includeusing ...
中綴表示式轉換成字尾表示式 棧
字尾表示式嚴格按照從左到右進行計算的模式,符合計算機執行方式,而中綴表示式需要計算機遇到符號後向後掃瞄一位,若為括號或優先順序更高的操作符還需要向後繼續掃瞄。設我們欲將中綴表示式 a b c d e f g轉換成字尾表示式,正確的答案為 abc de f g 當我們讀入運算元的時候,立即將其放入到輸...
中綴表示式轉換成字尾表示式
一 基礎知識 中綴表示式 人們常用的表示式就叫做中綴表示式,如a b c d 字尾表示式 又叫做逆波蘭表示式,由一名波蘭數學家提出,方便進棧操作 字尾表示式也叫逆波蘭表示式,其求值過程可以用到棧來輔助儲存。假定待求值的字尾表示式為 6 5 2 3 8 3 則其求值過程如下 1 遍歷表示式,遇到的數字...