面试高频手撕题 | 31.用两个栈实现队列

面试高频手撕题 | 31.用两个栈实现队列

一、知识点

队列是一种常用的数据结构,用于维护一系列元素,支持先进先出(FIFO)的顺序。而栈是一种后进先出(LIFO)的数据结构,用于维护一系列元素。要实现一个队列,可以使用两个栈,其中一个栈用于存储元素,另一个栈用于辅助操作。

二、思路分析

要使用两个栈实现一个队列,可以按照以下步骤进行:

初始化两个栈 stack1 和 stack2。

当有元素需要入队时,将元素压入 stack1。

当有元素需要出队时,首先检查 stack2 是否为空,如果为空,则将 stack1 中的所有元素依次弹出并压入 stack2 中,然后从 stack2 中弹出元素并返回。

如果 stack2 不为空,则直接从 stack2 中弹出元素并返回。

三、JavaScript解答

以下是使用 JavaScript 实现使用两个栈实现队列的代码:

class Queue {

constructor() {

this.stack1 = [];

this.stack2 = [];

}

enqueue(val) {

this.stack1.push(val);

}

dequeue() {

if (!t

相关推荐

Excel中万能的查询函数——VLOOKUP(使用方法+实操)
365bet网页版

Excel中万能的查询函数——VLOOKUP(使用方法+实操)

📅 06-29 👁️ 3550
微信名字 昵称 好听寓意好(精选100个)
365bet网页版

微信名字 昵称 好听寓意好(精选100个)

📅 07-04 👁️ 924
如何判断屏幕是不是原装屏
28365-365体育备用

如何判断屏幕是不是原装屏

📅 07-19 👁️ 8486