1.先说一下栈和队列的定义(自己的理解不做深入的解析):栈是一个只能在一端进行删除和插入操作的线性表,它是一个先进后出。队列也是一个线性表,但是其只能在表的前端进行删除操作,在表的后端进行插入操作,它是一个先进先出。

2.下面就用python代码来实现两个栈实现一个队列功能!

class Solution:

def __init__(self):   #初始化并定义两个栈

self.stack1=[]

self.stack2=[]

def push(self,node):

self.stack1.append(node)#将数据添加到第一个栈中

def pop(self):

if self.stack2==[]:#判断第二个栈是否为空,为空再进行操作

while self.stack1:

self.stack2.append(self.stack1.pop())#在第二个栈内加入从第一个栈删除的数据

return self.stack2.pop()

return self.stack2.pop()

总结:其实这个很简单,运用栈的先进后出的特点,将数据先加入第一个栈,然后通过在第二个栈中添加第一个栈删除的数据,就实现了数据的先进先出!

python———两个栈实现一个队列相关推荐

  1. python ——两个队列实现一个栈两个栈实现一个队列

    1.两个队列实现一个栈 进栈:元素入队列A 出栈:判断如果队列A只有一个元素,则直接出队.否则,把队A中的元素出队并入队B,直到队A中只有一个元素,再直接出队.为了下一次继续操作,互换队A和队B. p ...

  2. python 用两个栈实现一个队列

    | 两个栈实现队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能.(若队列中没有元素 ...

  3. 多态指针访问虚函数不能被继承的类快速排序N皇后问题插入排序堆排序merge归并排序栈上生成对象两个栈实现一个队列...

    多态 /*1. 要想实现覆盖(重写)父类必须声明为virtual,子类可以不声明为virtual.-->FunB()2. 派生类重写基类的虚函数实现多态,要求函数名.参数列表.返回值完全相同.( ...

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

    题目:两个栈实现一个队列. 栈的特点:先进后出,队列的特点是先进先出 思路:stack1放入数据:pop时,先判断stack2是否为空,如果不为空,直接pop,如果空,则push(stack1.pop ...

  5. 剑指offer五:两个栈实现一个队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. package com.jianzhioffer;import java.util.Stack;publ ...

  6. 两个栈实现一个队列,两个队列实现一个栈

    题目:用两个栈实现一个队列,用两个队列实现一个栈. 首先要了解栈和队列这两种数据结构各自的特点,栈是一种后入先出(Last In First Out,LIFO)的数据结构,队列是一种先进先出(Firs ...

  7. java实现-两个栈实现一个队列和两个队列实现一个栈

    1.两个栈实现一个队列 思路:压入元素直接入stack1,删除元素先判断stack2中是否为空,如果不为空直接弹出:为空则将stack1中的元素取出压入 stack2中再弹出. 代码: import ...

  8. 两个栈实现一个队列与两个队列实现一个栈

    http://blog.csdn.net/z84616995z/article/details/19204529 两个栈实现一个队列: 原理方法:用一个栈为主栈,一个栈为辅助栈存放临时元素. 入队:将 ...

  9. 【数据结构】(面试题)使用两个栈实现一个队列(详细介绍)

    http://blog.csdn.net/hanjing_1995/article/details/51539578 使用两个栈实现一个队列 思路一: 我们设定s1是入栈的,s2是出栈的. 入队列,直 ...

  10. 两个栈实现一个队列/两个队列实现一个栈

    http://blog.csdn.net/sinat_30472685/article/details/70157227 1两个栈实现一个队列 1.原理分析: 队列的主要操作有两个:入队操作和出队操作 ...

最新文章

  1. AI 影像诊断平台的5大设计要点
  2. 赛道一出,今后无需再熬夜
  3. 在不使用notifyDataSetChanged()方法,怎样选中Item中的内容
  4. 如何将SmartDraw中的图形导出LATEX可用的EPS格式?
  5. Web Socket/Stomp——整合Spring Session【Header Token模式】解决方案
  6. oracle定时任务的编写及查看删除
  7. mysql5.623 GTID主从复制+半同步复制安装与配置
  8. linux c之解决array subscript is not integer和AF_NET not undeclared
  9. NOI提高级:排序算法
  10. QT5开发及实例学习之一main()函数相关内容介绍
  11. 异常:Caused by: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
  12. 英文操作系统下WebBrowser控件无法显示本地页面的解决方法
  13. Windows 2000活动目录详解之基础篇
  14. java regex 正则表达式 提取数字和去除数字,过滤数字,提取价格
  15. hdu 5178 pairs (线性探查问题)
  16. VS Code 创建HTML页面教程
  17. python cad 二次开发bom_python处理BOM
  18. 大学计算机计算题乘法,分数乘法计算题100道
  19. 边框给背景图css怎么写,使用css设置边框背景图片
  20. 【菜鸟收藏:全方位掌握Excel的ROUNDUP函数设置】

热门文章

  1. Learning Efficient Single-stage Pedestrian Detectors by Asymptotic Localization Fitting行人检测ECCV2018
  2. 嵌入式C语言编程中经验教训总结(一) 详解const、static和volatile
  3. 《Java从入门到放弃》JavaSE入门篇:多线程(入门版)
  4. matlab qpsk代码 博客,完整版QPSK调制原理及matlab程序实现
  5. ios自建服务器降级,苹果系统怎样降级?iOS11降级至iOS10的方法
  6. js动态显示实时时间
  7. matlab进化树的下载,mega(进化树构建软件)下载 v7.0.14免费版
  8. java 并口和串口_串行接口和并行接口
  9. Python函数调用
  10. Native Instruments Maschine 2 v2.14.7 WiN-MAC 节奏音乐制作软件含拓展