系列文章参考资料为《大话数据结构》,源码为个人私有,未经允许不得转载
技术交流群或资料添加微信号:CoderAllen,回复关键字即可
主要用后缀(逆波兰)表达式做栈的现实
0.前言
我们都知道四则运算是很简单,尤其还可以使用计算器,不过对于涉及算式中带有大中小括号的四则运算,这时候简单的计算器就不好用了
比如:
这里边的困难在于乘除在加减的后面,却要先运算,加了括号就变得更复杂了
原理:
不过仔细观察的话,这里边括号都是成对出现的,所以可以利用栈来实现,只要碰到左括号,就将此左括号进栈,不管表达式有多少重括号,反正遇到左括号就进栈,而后面的出现右括号的时候,就让栈顶的左括号出栈,期间让数字运算,这样,最好有括号的表达式从左到右巡查一遍,栈应该是由空到有元素,最后在因全部匹配成功后成为空栈的结果
但是对于四则运算,括号也只是其中的一部分,先乘除后加减使得问题依然复杂,这时候就引出了逆波兰表达式 - 一种不需要括号的后缀表达法