简单的表达式计算及逆波兰栈
今天Boss不在,可以偷偷玩会。想写一个程序计算一个字符串表达式(假定表达式合法),使用逆波兰栈的原理。一开始觉得很容易,写了一会倒也出了不少问题,好在都是些小问题。
1.在字符串拆分那块就琢磨半天,也没想出什么好方法,最后用很土的方法实现的(方法StringSplit)
2.发现老是要判断符号栈是否有元素,干脆先压入一个“$”(operStack.Push("$")),类似“哨兵”。
3.遇到类似“-15*2+3*(1+2)”这样的式子时出错,所以在数字栈中先压入0(numStack.Push(0))
4.为了在扫描字符串结束后自动弹出符号栈中的符号并计算,在原字符末加上“$”,让程序在遇“$”时弹出所有符号。
程序如下,错误的或都不好的地方大家多多批评,感谢: