"""
队列-顺序存储
seqqueue.py
代码实现 """ # 自定义异常类
class QueueError(Exception):
pass # 队列-顺序存储代码-入队,出队,判断空满
class SeqQueue:
def __init__(self):
# 创建空列表作为存储空间
self._elems = [] # 入队-加到最后,内存不移动
def enqueue(self,val):
self._elems.append(val) # 出队-头部删除,内存移动
def dequeue(self):
# 空队列,报异常
# if not self._elems: # 如果为空,假假真
if self._elems == []:
raise QueueError("queue is empty")
# 非空队列,pop出第一个元素
return self._elems.pop(0) # 判断空满
def is_empty(self):
return self._elems == [] # 打印队列
def print_queue(self):
# 先判断是否为空
if self._elems == []:
raise QueueError("queue is empty")
else:
for item in self._elems:
print(item,end= " ")
print() # 反转队列 或者用顺序栈的进出栈(出队入栈,出栈入队)方法
def reverse_queue(self):
"""
算法:1.设置中间列表,遍历n-1次从队列出列,值存入中间列表
2.遍历n-1次,从中间列表倒着入列
:return: 反转后的队列
"""
if self.is_empty():
raise QueueError("queue is empty")
middle_list = []
len_iterator = len(self._elems)-1
for i in range(len_iterator):
middle_list.append(self.dequeue())
for i in range(len_iterator):
self.enqueue(middle_list.pop()) print("-"*30)
if __name__ == "__main__":
sq = SeqQueue()
#sq.out_queue()
# sq.enqueue(1)
# sq.enqueue(2)
# sq.enqueue(3)
# sq.enqueue(4)
# sq.print_queue()
# sq.dequeue()
#sq.print_queue()
# list01 = []
# for i in range(2):
# list01.append(sq.dequeue())
# for i in range(2):
# sq.enqueue(list01[-i-1])
sq.reverse_queue()
sq.print_queue()

基于python实现顺序存储的队列代码的更多相关文章

  1. 基于python实现链式队列代码

    """ 链式存储-队列 linkqueue.py 代码实现 思路: 1.入队, 2.出队, 3.判断空满 """ # 异常类 class Q ...

  2. 基于python实现顺序存储的栈

    """ 栈 sstack.py 栈模型的顺序存储 重点代码 思路总结: 1.列表是顺序存储,但功能多,不符合栈的模型特征 2.利用列表,将其封装,提供接口方法 " ...

  3. 基于python内置方法进行代码混淆

    0x00 动态加载模块 在python脚本中,直接使用import os.import subprocess或from os import system这种方法很容易被规则检测,即使使用其它执行命令的 ...

  4. 基于Python使用SVM识别简单的字符验证码的完整代码开源分享

    关键字:Python,SVM,字符验证码,机器学习,验证码识别 1   概述 基于Python使用SVM识别简单的验证字符串的完整代码开源分享. 因为目前有了更厉害的新技术来解决这类问题了,但是本文作 ...

  5. Python 基于Python及zookeeper实现简单分布式任务调度系统设计思路及核心代码实现

    基于Python及zookeeper实现简单分布式任务调度系统设计思路及核心代码实现   by:授客 QQ:1033553122 测试环境 功能需求 实现思路 代码实践(关键技术点实现) 代码模块组织 ...

  6. 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码

    引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...

  7. 基于RabbltMQ延迟插件实现延迟队列代码示例

    上一篇文章写了docker安装RabbitMQ及延迟插件的安装,这篇的话是基于RabbitMQ延迟插件实现延迟队列的示例 那么废话不多说 直接上代码!! 首先创建延迟队列配置类 DelayedQueu ...

  8. 代码编辑器[0] -> Vim/gVim[0] -> 基于 Python 的 gVim 环境配置(Windows)

     环境配置 / Environment Setup 基于Python开发的 gVim 环境配置(Windows) 使用方式参考 Vim 的使用. 1 基于vundle进行配置 Vim有多个扩展管理器, ...

  9. 学习Keras:《Keras快速上手基于Python的深度学习实战》PDF代码+mobi

    有一定Python和TensorFlow基础的人看应该很容易,各领域的应用,但比较广泛,不深刻,讲硬件的部分可以作为入门人的参考. <Keras快速上手基于Python的深度学习实战>系统 ...

随机推荐

  1. 性能测试1:loadrunner介绍及代理录制

    一.安装loadrunner lr安装环境要求: Lr11只支持ie9及一下,火狐30以下,不支持chrome.  操作系统只支持到win7.Lr打开时必须用管理员身份打开 在虚拟机中安装的win7, ...

  2. pytorch常用函数总结(持续更新)

    pytorch常用函数总结(持续更新) torch.max(input,dim) 求取指定维度上的最大值,,返回输入张量给定维度上每行的最大值,并同时返回每个最大值的位置索引.比如: demo.sha ...

  3. XXE外部实体注入漏洞

    XML被设计为传输和存储数据,XML文档结构包括XML声明.DTD文档类型定义(可选).文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具.XXE漏洞全称XML E ...

  4. Knowledge 1:Propositional Logic 命题逻辑基础及符号

    Keywords reasoning 推理 Deductive reasoning(for a basic logic) 演绎推理 analogy 类比:比喻 /əˈnælədʒi/ definiti ...

  5. 突然挂了!Redis缓存都在内存中,这下完了!

    我是Redis,一个叫Antirez的男人把我带到了这个世界上. “快醒醒!快醒醒!”,隐隐约约,我听到有人在叫我. 慢慢睁开眼睛,原来旁边是MySQL大哥. “我怎么睡着了?” “嗨,你刚才是不是出 ...

  6. Linux实战(11):配置PPPOE拨号

    前言: 由于需要做网站数据的抓取,普通的固定代理会容易被封禁,所以我们就用PPPOE通过动态拨号换不同的IP地址来解决该问题,下面PPPOE设置的整个方法过程: 移除NetworkManager安装r ...

  7. 部署cobbler服务器

    部署cobbler服务器 1.准备环境使用nat或者仅主机模式,不要使用桥接模式,方式获取的IP不是自己的 2. 配置yum源[epel]name=epelenabled=1gpgcheck=0bas ...

  8. IOC 原理

    SpringIOC实现原理 1. 依赖倒置 假设我们设计一辆汽车:先设计轮子,然后根据轮子大小设计底盘,接着根据底盘设计车身,最后根据车身设计好整个汽车.这里就出现了一个“依赖”关系:汽车依赖车身,车 ...

  9. jquery学习:

    1.什么是jQuery jquery 全称 javaScript Query.是js的一个框架.本质上仍然是js. 2.jQuery的特点 支持各种主流的浏览器. 使用特别简单 拥有便捷的插件扩展机制 ...

  10. 《InnoDB存储引擎》笔记

    第1章 Mysql体系结构和存储引擎 1.1 定义数据库和实例 数据库:database,物理的操作系统文件或其他形式文件类型的集合.当使用NDB存储引擎时,数据库文件可能是存放在内存中而不是磁盘之上 ...