1.用Priority函数表示运算符优先级
2.定义变量
定义两个链栈,分别存储操作符(opt)和操作数(num)。
3.初始化两个链栈并输入
4.当字符串不为‘\0’或者opt中还有操作符时继续循环
5.判断输入的是数字还是字符,是数字直接进栈
6.opt为空或者opt栈顶为 '(' 而输入字符不为 ')' 或者输入字符优先级比栈顶字符高 直接进栈
7.opt栈顶为 '(' 输入字符为 ')' ,出栈不运算
8.输入字符为 '\0' 而opt栈不为空 或者 输入字符为 ')' 而栈顶不为 '(' 或者 输入字符优先级比栈顶字符低或相等 出栈栈顶字符和两个操作数,进行运算并将结果重新放入num栈中。
9.打印num中最后的元素,就是结果
附:头文件Counter.h
调用函数Counter.c
初始化
进栈
栈顶元素
出栈