剑指offer[5]——用两个栈实现队列
发布日期:2021-05-13 01:00:25 浏览次数:20 分类:精选文章

本文共 457 字,大约阅读时间需要 1 分钟。

题目描述

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

我们先来了解一下什么是队列和栈。

对队列的理解就像你在排队,排队只能从尾部进去,头部出去,你不能插队,只能按照规则来,遵循先进先出的原则。而栈不一样的是只有一个出入口,进去只能从尾部进去,出去也只能从尾部出去,这个时候你进去的早反而出去的比较晚,遵循先进后出的原则。

题目的要求很简单,就是利用两个栈实现一个队列。我们就会想用一个栈来存储,另一个栈作为临时利用,就是说执行PUSH函数的时候和栈的PUSH是一样的,直接调用即可。但是POP的话就不太一样,队列是从栈底出去,所以这个时候就要求我们利用另一个栈,把存储栈中的元素依次POP到临时栈中,全部移过去之后再执行POP函数即可实现将栈底的元素弹出,代码如下:

let arr1 = [];let arr2 = [];function push(node){    arr1.push(node);}function pop(){    for(let i=0; i
上一篇:剑指offer[6]——旋转数组的最小数字
下一篇:剑指offer[4]——重建二叉树

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年05月23日 04时48分22秒