直接上**:
/*中綴表示式 轉換成 字尾表示式(逆波蘭式)*/
#include
#include
struct stack
;int get_priority(char c)
int isempty(struct stack s)
struct stack* createstack(unsigned int len)
void push(struct stack *s,char value)
s->array[s->top]=value;
}void pop(struct stack *s)
s->top--;
}char get_top(struct stack s)
transcode(char string1,char string2,int len)
pop(s);
}else if(value=='(')
else
push(s,value);}}
}while(! isempty(*s))
string2[j]='/0';
}int main()
將中綴表示式轉化成字尾表示式
中綴變字尾主要的思想就是將需要的運算子先做乙個對映 對於任意表示式,式中從頭開始掃,遇到非運算子,即任意數字或字母直接輸出 遇到運算子考慮放入棧中 若棧空則放入 若棧不為空,判斷棧頂的優先順序是否 待放入的運算子,若 小於則將其壓入棧中 若不小於,則將棧一直 pop,知道運算子可以放入棧中 當然還有...
將中綴表示式轉化成字尾表示式來計算值
題目很簡單,就是給出乙個表示式 例如2 3 5 6 然後我們得出他的值。未接觸這個方法前,我是用了一種很複雜的方法 爆肝警告 將中綴表示式 就是我們要求的表示式 轉化成字尾表示式來解決就會比較簡單。對於中綴表示式和字尾表示式的概念這裡就不說了,只將方法呈現出來。例如乙個中綴表示式 a b c d e...
一文看懂中綴表示式轉化成字尾表示式
通過堆疊的學習,我們已經知道想要將中綴表示式轉化成字尾表示式,有以下幾步操作 1.對於運算數 直接輸出 2.對於左括號 直接壓入棧中 3.對於右括號 將棧頂的運算子彈出並輸出,若棧頂元素不是左括號,繼續彈出,直到遇到左括號 出棧,但是不輸出 4.對於運算子 若優先順序大於棧頂運算子時,則把他壓棧 若...