队列的概念

  只允许在一端插入数据操作,在另一端进行删除数据操作的特殊线性表;进行插入操作的一端称为队尾(入队列),进行删除操作的一端称为队头(出队列);队列具有先进先出(FIFO)的特性。

# _*_ coding=utf-8 _*_

class Queue(object):

    def __init__(self, size=100):
self.queue = [0 for _ in range(size)]
self.size = size
self.rear = 0
self.front = 0 def push(self, element):
if not self.is_filled():
self.rear = (self.rear + 1) % self.size
self.queue[self.rear] = element
else:
raise IndexError("Queue is filled") def pop(self):
if not self.is_empty():
self.front = (self.front + 1) % self.size
return self.queue[self.front]
else:
raise IndexError("Queue is empty") def is_empty(self):
return self.rear == self.front def is_filled(self):
return (self.rear + 1) % self.size == self.front q = Queue(5)
for i in range(4):
q.push(i)
print(q.queue)
print(q.pop())

最新文章

  1. 11 Set和Map数据结构
  2. NanoProfiler - 适合生产环境的性能监控类库 之 基本功能篇
  3. onMeasure流程解析
  4. 静态代码检查工具-PMD初学者入门篇
  5. phpcms v9联动菜单的调用方法_详解get_linkage函数
  6. POJ 2182 Lost Cows (线段树)
  7. Swift - 使用socket进行通信(附聊天室样例)
  8. svn: E200007: CHECKOUT can only be performed on a version resource
  9. js根据出生年月日换算年龄
  10. 编译安装 python 2.7
  11. 51NOD 1238 最小公倍数之和 V3 [杜教筛]
  12. RoIPooling
  13. ansible-play中关于标签tages,handler,notify的使用
  14. Android Studio手动打包
  15. HTTP max-age与Expires的分别
  16. Ubuntu下面的docker开启ssh服务
  17. gearman的持久化,以mysql的方式
  18. ios 内存管理与property copy strong weak assign
  19. shell脚本把一些请求量非常高的ip给拒绝掉
  20. 【架构】MVC模式

热门文章

  1. 吴裕雄--天生自然java开发常用类库学习笔记:线程操作案例——生产者与消费者
  2. Unity 脚本中的update,fixedupdate,lateupdate
  3. 关于无法下载sklearn中的MNIST original数据集的问题
  4. 存储器HK1225-7EQ 使用说明书资料
  5. Python基础笔记:input()输入与数据类型转换
  6. 七十七、SAP中数据库操作之多表联合查询
  7. 127-PHP类通过魔术变量判断类中是否存在指定的方法
  8. Java中定义常量(Constant) 的几种方法
  9. 【转载】webDriver拾级而上·之五 iframe的处理
  10. P1018 锤子剪刀布