第四章 栈与队列

来源:互联网 发布:上海去哪里买特产 知乎 编辑:程序博客网 时间:2024/06/07 08:32

第四章 栈与队列

可以用向量或者列表实现。

应用

栈的应用场景

进制转换

实现

括号匹配

实现

不能用计数器来实现的原因:([)]这样一个多括号是不匹配的。而栈可以解决多括号匹配问题。

栈混洗

对于一个长度为n的序列,栈混洗总数有多少种?

结果是SP(n) = Catalan(n) = (2n)! / (n+1)! /n!

如何判断某个序列是否是栈混洗?

实现思路

中缀表达式求值

思路:判断能够进行优先计算的部分,将计算结果代替原表达式。

利用栈结构实现延迟缓冲

实例

然而,将数字和运算符放在一起,并不能让计算机很好的处理。最好是用两个栈分别存储。

实现


实例


逆波兰表达式

实例

将中缀表达式转换为RPN

转换算法

队列

队列也可以由向量或列表派生,这里采用列表实现

generated by haroopad
0 0