6 從中綴向字尾轉換表示式

2021-09-02 20:13:06 字數 1347 閱讀 3079

成績

10開啟時間

2023年10月20日 星期六 19:00

折扣0.8

折扣時間

2023年11月10日 星期六 23:55

允許遲交

否關閉時間

2023年11月21日 星期三 23:55

問題描述

中綴表示式就是我們通常所書寫的數學表示式,字尾表示式也稱為逆波蘭表示式,在編譯程式對我們書寫的程式中的表示式進行語法檢查時,往往就可以通過逆波蘭表示式進行。我們所要設計並實現的程式就是將中綴表示的算術表示式轉換成字尾表示,例如,將中綴表示式

(a 一 (b*c 十 d)*e) / (f 十 g )

轉換為字尾表示為:

abc*d十e*--fg十/

注意:為了簡化程式設計實現,假定變數名均為單個字母,運算子只有+,-,*,/ 和^(指數運算),可以處理圓括號(),並假定輸入的算術表示式正確。

要求:使用棧資料結構實現 ,輸入的中綴表示式以#號結束

整數n。表示下面有n個中綴表示式 

n個由單個字母和運算子構成的表示式

n個字尾表示式。

#include "stdio.h"

#include "ctype.h"

#include "stdlib.h"

typedef struct node

node;

node *head, *p;

void initstack()

void push(char ch)

void pop()

int main()

else if(ch == '(')

else if(ch == ')')

pop();

}else

else

char ch1 = head->next->symbol;

switch(ch)

case '*':

case '/':

case '+':

case '-':

}switch(ch1)

case '*':

case '/':

case '(':

case '+':

case '-':

}if(y > x || y == x)

else}}

}}

//當全部遍歷結束的時候進行的操作

while(head->next != null)

putchar('\n');

ch = getchar();

}}

中綴向字尾轉換表示式

解答總結 中綴表示式就是我們通常所書寫的數學表示式,字尾表示式也稱為逆波蘭表示式,在編譯程式對我們書寫的程式中的表示式進行語法檢查時,往往就可以通過逆波蘭表示式進行。我們所要設計並實現的程式就是將中綴表示的算術表示式轉換成字尾表示,例如,將中綴表示式 a 一 b c 十 d e f 十 g 轉換為字...

中綴向字尾表示式的轉換

前面也說過,對於計算機來說 不僅僅是計算機 中綴表示式都是複雜的,它要考慮到優先順序的問題,很傷腦筋,至於中綴向字尾的轉換也是乙個很傷腦筋的事情,在轉換的過程中要考慮到很多優先順序的情況。好了,既然跟優先順序有關,那麼我們就應該為各個運算符號設定乙個優先順序,我們很明顯對於加減乘除的優先順序已經很明...

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

中綴表示式是最自然 最易被人類理解的表達方式,但是計算機處理起來並不顯得方便,這時,字尾表示式就發揮作用了 例如 計算表示式 a b c d 的值,程式裡需要不斷的判斷運算子的優先順序,先計算括號裡的子表示式 假如我們將上述表示式轉換為字尾表示式 a b c d 你會發現現在是不需要括號了 這時我們...