"""
队列-顺序存储
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()

最新文章

  1. JAVA线程安全总结(转载)
  2. Jquery基础知识
  3. IntelliJ IDEA 发布最新版本13.0.1
  4. C# 总复习
  5. Linux系统信息查看
  6. jvm内存模型和内存分配
  7. 几种进入mysql的方法
  8. EventBus vs Otto vs LiteEventBus
  9. BZOJ 1954 The xor-longest Path
  10. 黑马程序员——JAVA基础之程序控制流结构之判断结构,选择结构
  11. OpenJudge就算概论-统计字符数
  12. Tomcat启动过程(三):从SocketProcessor到Container
  13. poj 3662(经典最短路)
  14. 使用Async同步执行异步函数
  15. C++学习笔记(四):枚举
  16. ECSHOP在线手册布局参考图--文章详情页 article.dwt
  17. Apache mod_wsgi部署Django项目
  18. matlab在图片上画框
  19. 删除ubuntu旧内核
  20. web前端面试官挖的那些坑(js)

热门文章

  1. Nginx 路由--Location的使用
  2. vueJs 安装
  3. CentOS如何设置IP连接网络
  4. burpsuite抓包乱码问题
  5. swift基本数据类型使用-数组使用
  6. [剑指Offer]65-不用加减乘除做加法
  7. 解读Java NIO Buffer
  8. (专题一)06 MATLAB的算术运算
  9. tensorflow-GPU配置
  10. 一篇文章搞定 Nginx 反向代理与负载均衡