那么我这里再列出四个关于栈的问题,大家可以思考一下。以下是以C++为例,使用其他编程语言的同学也对应思考一下,自己使用的编程语言里栈和队列是什么样的。
- C++中stack 是容器么?
- 我们使用的stack是属于哪个版本的STL?
- 我们使用的STL中stack是如何实现的?
- stack 提供迭代器来遍历stack空间么?
相信这四个问题并不那么好回答, 因为一些同学使用数据结构会停留在非常表面上的应用,稍稍往深一问,就会有好像懂,好像也不懂的感觉。
有的同学可能仅仅知道有栈和队列这么个数据结构,却不知道底层实现,也不清楚所使用栈和队列和STL是什么关系。
所以这里我再给大家扫一遍基础知识,
首先大家要知道 栈和队列是STL(C++标准库)里面的两个数据结构。
C++标准库是有多个版本的,要知道我们使用的STL是哪个版本,才能知道对应的栈和队列的实现原理。
232.用栈实现队列
解题思路:https://programmercarl.com/0232.用栈实现队列.html#思路
使用两个栈来模拟队列,一个栈用于进,一个栈用于出
两次栈以后的结果相当于一个队列
225. 用队列实现栈
也是使用两个队列,一个主要用于存储,一个用于辅助。
queue1的作用用于存储
当我们需要pop queue中的队尾的时候, 我们需要将前面的元素存储到我们的queue2中
注意在java中, queue 的内置功能以及定义的方式