中綴轉前 字尾 C語言實現

2021-10-12 07:29:22 字數 1063 閱讀 1608

填空題和選擇題用到的方法---鏈結第三章 棧和佇列

中綴轉字尾

核心思想就是數字直接進入輸出棧,遇到運算子則先比較優先順序大小或者棧內無元素或只有左括號即可直接進入運算子棧,再運算子中碰到右括號則直接彈出所有運算子至輸出棧

#include int getpriority(char op) 

void change(char a, char s2[2])else if (a[i] == '(')else if (a[i]=='+' || a[i]=='-' || a[i]=='*' || a[i]=='/')else s2[++top2] = s1[top1--]; //否則放入輸出棧

中綴轉字首除了左右括號互換,i改為len-1,>改為》=即可。**還未測試,親自試一試吧

int getpriority(char op) 

void change(char a, char s2[2], int len)else if (a[i] == ')')else if (a[i]=='+' || a[i]=='-' || a[i]=='*' || a[i]=='/')else s2[++top2] = s1[top1--]; //否則放入輸出棧

}else if (a[i] == '(')

} while (top1 != -1)

}

中綴轉前字尾表示式

乙個中綴式到其他式子的轉換方法 這裡我給出乙個中綴表示式a b c d e 第一步 按照運算子的優先順序對所有的運算單位加括號,式子變成 a b c d e 第二步 轉換字首與字尾表示式 字首 把運算符號移動到對應的括號前面 則變成 a bc de 把括號去掉 a bc de 字首式子出現 字尾 把...

c 實現中綴轉字首,中綴轉字尾,字尾表示式求值

思想 用兩個棧實現,規則如下 1 初始化兩個棧 運算子棧s1和儲存中間結果的棧s2 2 從右至左掃瞄中綴表示式 3 遇到運算元時,將其壓入s2 4 遇到運算子時,比較其與s1棧頂運算子的優先順序 4 1 如果s1為空,或棧頂運算子為右括號 則直接將此運算子入棧 4 2 否則,若優先順序比棧頂運算子的...

中綴轉字尾(棧的應用 C語言介紹)

從左到右進行掃瞄,若為數字直接輸出 若為字元 1 若棧為空,直接入棧 2 若該操作符優先順序大於棧出口操作符的優先順序,直接入棧 3 若優先順序第於棧出口操作符的優先順序,進行出棧操作 直到該操作符優先順序大於棧出口操作符的優先順序,再將該字元入棧 若為 直接入棧 若為 出棧操作,直到遇到 包括 若...