栈与队列理论基础
- 队列queue是先进先出,栈stack是先进后出。
- 栈提供push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。 不像是set 或者map 提供迭代器iterator来遍历所有元素。
- 队列中先进先出的数据结构,同样不允许有遍历行为,不提供迭代器
232.用栈实现队列
- 双栈模拟队列
- 栈操作,stack.top是获取顶端元素(不删除),stack.pop是删除顶端元素(不获取)
- 从一个stack进入到另一个stack,可以实现数据方向的改变。
225. 用队列实现栈
- 一个队列模拟栈:把队列前的size-1个牌按顺序再放回牌堆
- 以上2题(用一个数据结构模拟另外一个数据结构)的规律
- 对于存放push,直接往里放就行,我们的复杂操作主要在pop
- que.front仅仅是查看队列的第一个元素,que.pop才是弹出第一个元素
- 查看首个元素stack.Top: que.back查看最后一个元素