当前位置: 首页 > news >正文

两队列模拟一个栈,python实现

python实现两个队列模拟一个栈:

class Queue(object):
    def __init__(self):
        self.stack1=[]
        self.stack2=[]

    def enqueue(self, item):
        if len(self.stack1) == 0:
            self.stack1.append(item)
        elif len(self.stack2) == 0:
            self.stack2.append(item)
        if len(self.stack2)==1 and len(self.stack2) >= 1:
            while len(self.stack1)>0:
                self.stack2.append(self.stack1.pop(0))
        elif len(self.stack1)==1 and len(self.stack2) >= 1:
            while len(self.stack2)>0:
                self.stack1.append(self.stack2.pop(0))

    def dequeue(self):
        if self.stack1:
            return self.stack1.pop(0)
        elif self.stack2:
            return self.stack2.pop(0)
        else:
            return None

q = Queue()
q.enqueue(3)
# print(q.dequeue())
q.enqueue(4)
q.enqueue(5)
q.enqueue(6)
print(q.dequeue())
print(q.dequeue())
print(q.dequeue())
print(q.dequeue())

 

转载于:https://www.cnblogs.com/zhangshuyang/p/8094597.html

相关文章:

  • Lambda拉姆达表达式
  • 大型EMR电子病历源码三甲医院医疗信息管理系统软件网络版
  • 迭代器、 生成器、 面向过程编程
  • java-StringBuffer和String的相互转换
  • 数据库的SQL优化
  • DBMS_SCHEDULER修改资源调度总结
  • mysql5.6整表数据删除binlong恢复
  • 装饰器函数
  • 传奇物品叠加设置方法
  • 使用selenium抓取淘宝的商品信息
  • JAVA-初步认识-常用对象API(集合框架-概述)
  • 九:动态规划-最大的算式
  • ssl1104-USACO 2.1城堡(foodfill)【图论,广搜】
  • C#多线程技术提高RabbitMQ消费吞吐率
  • 2017年总结的前端文章——border属性的多方位应用和实现自适应三角形
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • [deviceone开发]-do_Webview的基本示例
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • JAVA并发编程--1.基础概念
  • java中的hashCode
  • js作用域和this的理解
  • vue:响应原理
  • 搞机器学习要哪些技能
  • 理清楚Vue的结构
  • 模型微调
  • 网页视频流m3u8/ts视频下载
  • No resource identifier found for attribute,RxJava之zip操作符
  • const的用法,特别是用在函数前面与后面的区别
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #include<初见C语言之指针(5)>
  • #NOIP 2014# day.1 T2 联合权值
  • (04)odoo视图操作
  • (多级缓存)缓存同步
  • (二十四)Flask之flask-session组件
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (十)c52学习之旅-定时器实验
  • (十三)Maven插件解析运行机制
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)scrum常见工具列表
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .NET 5种线程安全集合
  • .NET 回调、接口回调、 委托
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET企业级应用架构设计系列之技术选型
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • ??eclipse的安装配置问题!??
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [BZOJ 3282] Tree 【LCT】
  • [BZOJ4016][FJOI2014]最短路径树问题
  • [C#][opencvsharp]opencvsharp sift和surf特征点匹配
  • [C++]指针与结构体