实现一个MyQueue类,该类用两个栈来实现一个队列。

示例:

MyQueue queue = new MyQueue();queue.push(1);
queue.push(2);
queue.peek();  // 返回 1
queue.pop();   // 返回 1
queue.empty(); // 返回 false

示例代码1:

class MyQueue(object):def __init__(self):"""Initialize your data structure here."""self.queue = []def push(self, x):"""Push element x to the back of queue.:type x: int:rtype: None"""self.queue.append(x)def pop(self):"""Removes the element from in front of queue and returns that element.:rtype: int"""return self.queue.pop(0)def peek(self):"""Get the front element.:rtype: int"""return self.queue[0]def empty(self):"""Returns whether the queue is empty.:rtype: bool"""if len(self.queue) == 0:return Trueelse:return False# Your MyQueue object will be instantiated and called as such:
# obj = MyQueue()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.peek()
# param_4 = obj.empty()

示例代码2:

class MyQueue(object):def __init__(self):"""Initialize your data structure here."""self.stack1 = []self.stack2 = []def push(self, x):"""Push element x to the back of queue.:type x: int:rtype: None"""self.stack1.append(x)def pop(self):"""Removes the element from in front of queue and returns that element.:rtype: int"""if len(self.stack2) == 0:while self.stack1:self.stack2.append(self.stack1.pop())return self.stack2.pop()def peek(self):"""Get the front element.:rtype: int"""if len(self.stack2) == 0:while self.stack1:self.stack2.append(self.stack1.pop())return self.stack2[-1]def empty(self):"""Returns whether the queue is empty.:rtype: bool"""return len(self.stack1) == 0 and len(self.stack2) == 0# Your MyQueue object will be instantiated and called as such:
# obj = MyQueue()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.peek()
# param_4 = obj.empty()

化栈为队(两个栈来实现一个队列)相关推荐

  1. 《剑指offer》-- 构建乘积数组、求1+2+3+...+n、不用加减乘除做加法、包含min函数的栈、用两个栈实现队列

    一.构建乘积数组: 1.题目: 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*. ...

  2. php2个栈写一个队列,【数据结构】栈面试题--两个栈实现一个队列

    首先我们必须清楚,栈先进后出,队列先进先出.这道他们各自的特点以后,我们用两个栈来实现1个队列. 下边给出图片: 下边给出代码: template class Queue { public: void ...

  3. leetcode题目-最小栈和用两个栈实现队列

    1.用两个栈实现队列 a栈用来存放加入的数 b栈用来存放要删除的数 当b栈存在数据时,就把top的元素pop掉 直到b栈中没有数据存放,再重新遍历a栈,把a的数据倒着遍历进b栈.也就是b栈存放着倒着的 ...

  4. LeetCode 341. 扁平化嵌套列表迭代器(双栈)

    文章目录 1. 题目 2. 双栈解题 1. 题目 给定一个嵌套的整型列表.设计一个迭代器,使其能够遍历这个整型列表中的所有整数. 列表中的项或者为一个整数,或者是另一个列表. 示例 1: 输入: [[ ...

  5. leetcode剑指offe刷题-第一题-用两个栈实现队列

    leetcode剑指offe刷题-第一题 文章目录 leetcode剑指offe刷题-第一题 前言 一.用两个栈实现队列 1.思路 2.代码如下 总结 前言 记录一下自己刷算法的路程. leetcod ...

  6. 两个队列实现栈,两个栈实现队列详细解析

    栈和队列是两种常用的数据结构,他们的地城实现基本也就两种:数组和链表.数组是是将元素在内存中连续存放,链表是用指针来索引数据.具体请自行google,不是要讲的重点. 第一个问题:栈是一种先进后出的数 ...

  7. 【C语言实现共享栈】关于【共享栈】,你知道多少,快来看看吧

    目录 一 .共享栈的基本概念 1.定义 2.特点 二.共享栈的表示 三.共享栈的基本操作 1.共享栈的初始化操作 2.共享栈的判空操作 3.共享栈的进栈操作 0号栈进栈 1号栈进栈 4.共享栈的出栈操 ...

  8. 栈的顺序存储实现(顺序栈)

    目录 1.初始化 2.判断栈是否为空 3.入栈 4.出栈 5.读取栈顶 6.top指针初始化为0的情况 7.共享栈 补充一个小知识点:n个不同元素进栈,那么出栈元素不同的排列的个数为  . 上述公式被 ...

  9. 面试题 03.04. 化栈为队/面试题09. 用两个栈实现队列/232. 用栈实现队列

    2020-05-08 1.题目描述 用两个栈实现一个队列 2.题解 将一个栈用来进行入操作,另一个进行出操作,入栈直接入,出栈的时候如果是空的则把另一个 栈中的所有元素移动过来,再进行出栈,否则直接出 ...

最新文章

  1. linux c 文件指针 句柄(FILE*) 文件描述符(fd) 文件路径(filepath) 互相转换
  2. 你的微服务实践还顺利吗?
  3. java集合类程序代码_java集合类源码学习二
  4. 计算机专业会比投档线高多少,比投档线高多少安全 投档线和录取线差多少
  5. 【科技金融】CART树现金贷风控策略
  6. Learning hard C#学习笔记 C#简介
  7. Effective Java之必要时进行保护性拷贝(三十九)
  8. python的进阶之路_Python 从入门到进阶之路(三)
  9. OpenMV(五)--STM32实现人脸识别
  10. JavaScript学习(七)—元素节点的获取方式
  11. codeception (1)介绍
  12. c语言求球的体积用const,牛客练习赛41 E.球的体积并(计算几何)
  13. 关于博客的自定义皮肤
  14. 地中海?修电脑的?格子衫?那些对程序员的高级黑!!!
  15. Simplicity Studio V5 建立一个空工程后如何添加外设驱动
  16. 一键QQ聊天与一键加群QQ功能
  17. Flink DataStream Split 实现分流
  18. 互联网年终奖出炉,腾讯多个核心G,10个月打底,华为人均分红47.6w,虾皮 B绩效0.5个月,网友:羡慕哭了!...
  19. windows phonegap android,phonegap windows 安装
  20. 电子设备丢失数据如何恢复

热门文章

  1. 从0开始,基于Python探究深度学习神经网络
  2. Kaggle金牌得主的Python数据挖掘框架,机器学习基本流程都讲清楚了
  3. 提高建模效率,改变手工作坊式生产,AutoML的技术研究与应用进展如何了?
  4. 13岁小孩都跟我抢Python了,完了!
  5. 读8篇论文,梳理BERT相关模型进展与反思
  6. 110万开发者的福音,百度Easy DL商品检测专业版上线
  7. 一键fxxk,代码修复神器拯救你
  8. 12岁AI开发者现身DuerOS发布会:得开发者得天下
  9. 贾跃亭晒FF 91新图,“生态化反”到底凉没凉?
  10. AI一分钟|AI聊机器人“Shibuyu Mirai”获日本居住权,传今日头条3亿美元收购Faceu激萌