用栈求算术表达式的值
题目:1 将中缀表达式转换为后缀表达式 2 求后缀表达式的值 #include<stdio.h> #define MaxSize 100 struct { char data[MaxSize]; int top; //栈顶指针 }op; //定义运算符栈 struct { float data[MaxSize]; int top; }st; //定义数值栈 void trans(char exp[],char postexp[]) { int i = 0; int j = 0; char ch; op.top = -1; //栈顶指针初始化为-1 ch = exp[i]; i++; while (ch != '\0') { switch (ch) { case '(': //判定为左括号 直接入栈 op.top++; op.data[op.top] = ch; break; case ')': while (op.data[op.top] != '(') { postexp[j] = op.data[op.top]; op.top--; j++; } op.top--; //左括号也出栈 但不输出 break; case '+': case '-': //为 + 或者 - 时候,优先级不大于栈顶任何运算符的优先级 直到 ) while (op.top != -1 && op