美文网首页
用栈实现队列和用队列实现栈的思路

用栈实现队列和用队列实现栈的思路

作者: graychen | 来源:发表于2017-12-12 17:29 被阅读0次

Stack<==>Queue。使用栈实现队列的功能以及使用队列实现栈的功能

首先栈的原理是先入的后出,也就是First In Last Out(FILO)。队列的原理是先入先出 First In First Out(FIFO)

1.栈实现队列

原理:使用两个栈,一个用来进一个用来出。

push操作时候,往输入的栈push元素

pop操作的时候,先判断输出的栈有没有元素,如果没有就把输入栈里面元素依次后入先出的顺序给到输出栈,最后取出输出栈的元素。


2.队列实现栈

方法1:用一个辅助队列,每当有元素push进“栈”,则需要把队列的front位置给它空出来,方便后面直接pop()和top(),因此我们可以做两次搬家操作,来获得一个新的队列:

方法2:在每次push()操作时,我们直接从队列头开始,把每一个元素复制到队尾,然后删除队头的这个元素,这样push进来的新元素就到了front的位置:

相关文章

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • leecode刷题(26)-- 用栈实现队列

    leecode刷题(26)-- 用栈实现队列 用栈实现队列 使用栈实现队列的下列操作: push(x) -- 将一...

  • 剑指offer-05-用两个栈实现队列

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

  • C语言第七次作业:链表

    707. 设计链表 空指针 空节点 225. 用队列实现栈 链式存储栈 双队列实现栈 232. 用栈实现队列 链式...

  • 两个栈实现一个队列

    《剑指offer》面试题9:两个栈实现队列 题目:用2个栈实现一个队列,完成队列的push和pop操作 思路:栈1...

  • 力扣算法 - 用栈实现队列

    用栈实现队列 题目 使用栈实现队列的下列操作: 示例: 说明: 思路 创建两个stack inStack outS...

  • 剑指offer--05. 两个栈实现队列

    题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型 思路:栈A用来作入队列栈...

  • 38_两个有趣的问题

    关键词:通过栈实现队列、通过队列实现栈 0. 通过栈实现队列 用栈实现队列等价于用后进先出的特性实现先进先出的特性...

  • 队列之-队列实现栈

    一、队列实现栈核心算法概述 之前已经描述过了用栈实现队列的功能,见栈系列之-实现队列,那么同样队列也可以用来实现栈...

  • 栈&队列

    一、栈&队列总结 栈/队列的应用接雨水验证栈序列滑动窗口的最大值 栈/队列的特殊实现用两个栈实现队列用两个队列实现...

网友评论

      本文标题:用栈实现队列和用队列实现栈的思路

      本文链接:https://www.haomeiwen.com/subject/ydmnixtx.html