栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。
用两个栈实现队列的先进先出。
队列是先进先出的规则,使用辅助队列,每次将压栈数据先存入辅助队列,后移动到另一队列中,实现先进后出。
优化:一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部,此时再去弹出元素就是栈的顺序了。
利用栈的先进后出,可以判断括号是否成对出现;
逆波兰表达式主要有以下两个优点:
-
去掉括号后表达式无歧义。
-
适合用栈操作运算:遇到数字则入栈;遇到运算符则取出栈顶两个数字进行计算,并将结果压入栈中。
常见数据结构:大顶堆、小顶堆;(堆适用于求高低频的结果集)
标签:容器,队列,元素,力扣,括号,days04,表达式 From: https://www.cnblogs.com/LinxhzZ/p/17174818.html