资讯专栏INFORMATION COLUMN

【剑指offer】6.用两个栈实现队列

fredshare / 2223人阅读

摘要:题目用两个栈来实现一个队列,完成队列的和操作。队列中的元素为类型。基本思路栈用于入队列存储栈出队列时将栈的数据依次出栈,并入栈到栈中栈出栈即栈的底部数据即队列要出的数据。注意栈为空才能补充栈的数据,否则会打乱当前的顺序。

题目

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

基本思路

栈1:

用于入队列存储

栈2:

出队列时将栈1的数据依次出栈,并入栈到栈2中

栈2出栈即栈1的底部数据即队列要出的数据。

注意:

栈2为空才能补充栈1的数据,否则会打乱当前的顺序。

代码
const stack1 = [];
const stack2 = [];

function push(node)
{
    stack1.push(node);
}
function pop()
{
    if(stack2.length === 0){
       while(stack1.length>0){
        stack2.push(stack1.pop());
       }
    }
    return stack2.pop() || null;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/101052.html

相关文章

  • 剑指offer/LintCode494_两个队列实现一个

    摘要:剑指用两个队列实现一个栈声明文章均为本人技术笔记,转载请注明出处解题思路实现功能用两个队列实现一个栈,实现,,和方法解题思路假设有队列和实现栈的操作实现栈操作始终用来入队实现实现栈的方法模拟栈的过程中,保证两个队列中始终有一个队列为空,另一 剑指offer/LintCode494_用两个队列实现一个栈 声明 文章均为本人技术笔记,转载请注明出处https://segmentfault....

    rose 评论0 收藏0
  • 剑指offer/LintCode40_两个模拟队列

    摘要:剑指用两个栈模拟队列声明文章均为本人技术笔记,转载请注明出处解题思路实现功能用两个栈模拟实现一个队列的,和操作解题思路假设有两个栈队列实现始终用入栈实现队列和实现由于依次出栈并压入中,恰好保证中顺序与模拟队列顺序一致,始终保证栈顶元素为模拟 剑指offer/LintCode40_用两个栈模拟队列 声明 文章均为本人技术笔记,转载请注明出处https://segmentfault.com...

    bawn 评论0 收藏0
  • 【转】《剑指Offer》JavaScript实战——两个实现队列

    摘要:题目描述用两个栈来实现一个队列,完成队列的和操作。队列中的元素为类型。下面是实现代码。 题目描述     用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题方法 let stack1=[],//两个数组模拟栈的行为 stack2=[]; function push(node) { // write code here //...

    senntyou 评论0 收藏0
  • #yyds干货盘点#剑指 Offer 09. 两个实现队列

    摘要:题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数和,分别完成在队列尾部插入整数和在队列头部删除整数的功能。删除此堆栈顶部的对象,并将该对象作为此函数的值返回。 题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和...

    RichardXG 评论0 收藏0
  • 剑指offer【9】:两个实现队列

    摘要:题目用两个栈实现一个队列完成队列的和操作。题解入队出队链表为空注意点注意特殊情况。 题目 用两个栈实现一个队列,完成队列的Push和Pop操作。 题解 public class Solution { Stack stack1 = new Stack(); Stack stack2 = new Stack(); //入队 public void push(int node) { ...

    xiaoqibTn 评论0 收藏0

发表评论

0条评论

fredshare

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<