栈(后缀表达式的理想数据结构)

242 阅读1分钟

前段时间看书《Java软件结构与数据结构》看到的,后来和同事刚好谈到过这。想起来自己简单写一下。

  • 后缀表达式现先举个栗子:4 5 +,这个表达式就是后缀表达式。用栈的实现过程就是将操作数4入栈,将操作数5入栈,发现操作符+,然后将操作符应用到前面两个操作数上,得出结果:9;
  • 给个复杂点的运算
  • 12 2 5 + - 4 * 2 /
  • 12 7 - 4 * 2 /
  • 5 4 * 2 /
  • 20 2 /
  • 10
  • 规则在写一下:从左到右扫描,对于操作数压入栈中,对于操作符,将栈顶弹出两个元素,把元素按照操作符操作,把结果压入栈中。最后栈里剩的元素就是表达式的计算结果。
  • 再发个运算的形象解读图