後綴表達式c語言
① c語言後綴表達式問題,程序調試過程中每經過一個if,i就加1,不知道是為什麼
第一個while循環內最後結束部分,有i++,i++相當於i=i+1;
② C語言後綴表達式
*和/同一級 +和-同一級
你的是不是優先算*
導致d/e*f變成了d/(e*f)
有本數據結構與演算法分析 上面有講到這類演算法
③ C語言後綴表達式轉換成中綴表達式
在計算機上用的
1、利用棧來實現
2、利用語法樹來實現
先把中綴表達式用二叉樹表示出來,再後序遍歷該二叉樹就得到相應的後綴表達式了
在草稿上手工轉換
3、加括弧法
④ c語言後綴表達式++
printf("%d,%d\n",(b++)++,b);
printf中不可用逗號,可用空格鍵。
⑤ C語言:前綴表達式和後綴表達式的文法分別為前綴表達式 E->*(E,E)|+(E,E)|a
#include<stdio.h>
#include<iostream>
#include<string>
#include<stack>
using namespace std;
int main() {
string str;
stack<char>mystack;
while (getline(cin, str)) {
printf("\n");
for (int i = 0; i < str.size(); i++) {
if (str[i] == 'a' or str[i]==',') {
cout << str[i];
}
else if (str[i] == '+' or str[i] == '-' or str[i] == '*' or str[i] == '/' ) {
mystack.push(str[i]);
}
else if (str[i] == '(') {
cout << str[i];
}
else if (str[i] == ')') {
cout << str[i] << mystack.top();
mystack.pop();
}
}
}
}