简单的表达式计算及逆波兰栈

今天Boss不在,可以偷偷玩会。想写一个程序计算一个字符串表达式(假定表达式合法),使用逆波兰栈的原理。一开始觉得很容易,写了一会倒也出了不少问题,好在都是些小问题。

1.在字符串拆分那块就琢磨半天,也没想出什么好方法,最后用很土的方法实现的(方法StringSplit

2.发现老是要判断符号栈是否有元素,干脆先压入一个“$”(operStack.Push("$")),类似“哨兵”。

3.遇到类似“-15*2+3*(1+2)”这样的式子时出错,所以在数字栈中先压入0numStack.Push(0)

4.为了在扫描字符串结束后自动弹出符号栈中的符号并计算,在原字符末加上“$”,让程序在遇“$”时弹出所有符号。

程序如下,错误的或都不好的地方大家多多批评,感谢:

 

算法基础系列之四:表达式计算及逆波兰栈private static Regex regOper = new Regex(@"[\+\-\*/\(\)$]");
算法基础系列之四:表达式计算及逆波兰栈
static void Main(string[] args)

 

相关文章:

  • 2021-04-30
  • 2022-12-23
  • 2021-06-14
  • 2021-07-26
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-05-23
  • 2022-12-23
  • 2021-06-01
  • 2021-06-02
  • 2021-07-28
相关资源
相似解决方案