栈
2018-01-19 本文已影响4人
维乾
官方定义:栈是一个后进先出的线性表,它只要求尾部进行删除和插入操作。对于栈来说,这个表尾成为栈的栈表(top)相应的表头称为栈底。
栈的顺序存储结构(注意top指的栈顶是没有数据的。而存放数据顶部应该是top-1个位置)
栈的顺序存储结构创建
(http://haoran-10.iteye.com/blog/1490811)逆波兰表达式(后缀表达式)
例子:a+b ---> a,b,+ a+(b-c) ---> a,b,c,-,+ a+(b-c)*d ---> a,b,c,-,d,*,+ a+d*(b-c)--->a,d,b,c,-,*,+ a=1+3 ---> a,1,3,+,=
优势 :它的优势在于只用两种简单操作,入栈和出栈就 可以搞定任何普通表达式的运算。其运算方式如下:
如果当前字符为变量或者为数字,则压栈,如果是运算符,则将栈顶两个元素弹出作相应运算,结果再入栈,最后当表达式扫描完后,栈里的就是结果。