栈和队列理论基础
-
C++中stack 是容器么?
- 我们使用的stack是属于哪个版本的STL?
- 我们使用的STL中stack是如何实现的?
- stack 提供迭代器来遍历stack空间么?
我的解答:
5. 在c++中stack被归类为容器适配器,栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。
6. 在GCC中使用的SGI_STL,开源且可读性强
7. 默认使用deque实现stack,也可以切换成vector或者list
8. 不提供
232.使用栈实现队列
- 使用俩个栈实现,一个是输入栈,一个是输出栈,当输出栈为空时,将所有输入栈的数据按顺序放入。pop中可以服用peek的代码
尝试实现:
较为简单,stack的POP()是没有返回值的
225,使用队列实现栈
要求只是用一个队列。
如果使用数组的话,能使用栈顶指针实现,满足一个数组实现。
队列的话,POP()的时候将前面的元素重新push,将需要出栈的元素推到队头就行
实现简单。