摘要: 表达式的求解的关键是将其转换成逆波兰表达式(即后缀表达式,如1+2*3它的逆波兰表达式为123*+),在后缀表达式中已经考虑了运算符的优先级,没有括号,只有操作数和运算符。算术表达式转换成后缀表达式方法如下:依次从键盘输入表达式的字符ch,对于每个ch:(1)若ch为数字则直接将其放入后缀数组exp中并以#号标记数值串结束。(2)若ch为"(",则直接将其压入字符栈op中。(3)若ch为")",则将栈中"("以前的字符依次全部删除并将其放入后缀数组exp中,然后再将字符ch放入字符栈op中。(4)若ch为"+".& 阅读全文
posted @ 2011-09-02 15:26 zhongya 阅读(2513) 评论(0) 推荐(1) 编辑
摘要: 1#include <stdio.h> 2 #include <windows.h> 3 #include <conio.h> 4 #include <math.h> 5 #include <stdlib.h> 6 #include <string.h> 7 #define N 200 8 9 void trans(char str[],char exp[])//这是求解的关键,将算术表达式转换成逆波兰表达式。 10 { 11 struct 12 { 13 char data[N]; 14 int top; //栈顶指.. 阅读全文
posted @ 2011-09-02 14:23 zhongya 阅读(725) 评论(0) 推荐(1) 编辑