代码随想录Day10|栈与队列

发布时间 2023-05-28 00:01:16作者: 跪求个offer

那么我这里再列出四个关于栈的问题,大家可以思考一下。以下是以C++为例,使用其他编程语言的同学也对应思考一下,自己使用的编程语言里栈和队列是什么样的。

  1. C++中stack 是容器么?
  2. 我们使用的stack是属于哪个版本的STL?
  3. 我们使用的STL中stack是如何实现的?
  4. stack 提供迭代器来遍历stack空间么?

相信这四个问题并不那么好回答, 因为一些同学使用数据结构会停留在非常表面上的应用,稍稍往深一问,就会有好像懂,好像也不懂的感觉。

有的同学可能仅仅知道有栈和队列这么个数据结构,却不知道底层实现,也不清楚所使用栈和队列和STL是什么关系。

所以这里我再给大家扫一遍基础知识,

首先大家要知道 栈和队列是STL(C++标准库)里面的两个数据结构。

C++标准库是有多个版本的,要知道我们使用的STL是哪个版本,才能知道对应的栈和队列的实现原理。


232.用栈实现队列

解题思路:https://programmercarl.com/0232.用栈实现队列.html#思路

使用两个栈来模拟队列,一个栈用于进,一个栈用于出

两次栈以后的结果相当于一个队列

 


225. 用队列实现栈

也是使用两个队列,一个主要用于存储,一个用于辅助。

queue1的作用用于存储

当我们需要pop queue中的队尾的时候, 我们需要将前面的元素存储到我们的queue2中

注意在java中, queue 的内置功能以及定义的方式