Queue
来源:互联网 发布:java随机昵称生成器 编辑:程序博客网 时间:2024/06/05 21:04
# -*-coding: utf-8 -*-# Author :writen by Qiusheng Li# Time: 2014/08/19# Email:liqiusheng_123@hotmail.com# enqueue Insert an item at the back of the queue# dequeue Remove an item from the front of the queue# peek/front Retrieve an item at front of the queue without removing it# empty/size Check whether the queue is empty or return its size# using list impliment the Queue#node another approach is to implement a queue as a container for nodes,as we have#done for stacks,but now the nodes are inserted and removed in a FIFO orderclass Node(object): def __init__(self,value=None): self.value = value self.next =Noneclass Queue2(object): '''container nodes to implement a queue class''' def __init__(self): self.first =None # point to the first node self.pre = None # point to the last node def enqueue(self,value): node = Node(value) if self.first == None: self.first = node else: self.pre.next = node self.pre = node def dequeue(self): if self.first: value = self.first.value # get value object is better than get node object self.first = self.first.next return value # else: # don't use else, if contains return raise Exception('Queue is empty') def peek(self): if self.first: return self.first.value else: return None def isEmpty(self): return bool(self.first) def size(self): if self.first == None: return 0 node = self.first i = 0 while node: i += 1 node = node.next return i def Queue2Main(): queue = Queue2() queue.enqueue(1) queue.enqueue(2) queue.enqueue(3) print "size : ",queue.size() print "peek: ",queue.peek() print "dequeue: ",queue.dequeue() print "size : ",queue.size() print "peek: ",queue.peek() print "dequeue: ",queue.dequeue() print "dequeue: ",queue.dequeue() print "size : ",queue.size() print "peek: ",queue.peek()'''testing resultsize : 3peek: 1dequeue: 1size : 2peek: 2dequeue: 2dequeue: 3size : 0peek: None'''if __name__ == '__main__': Queue2Main()
0 0
- Queue
- queue
- Queue
- QUEUE ~
- queue
- queue
- queue
- queue
- queue
- queue
- Queue
- Queue
- queue
- queue
- Queue
- Queue
- queue
- Queue
- Navi PushVC及Present VC的屏幕旋转
- 浏览器最核心的部分是渲染引擎
- poj 3077 Rounders 【简单字符串处理】
- Arch Linux下VMware-Tools安装笔记
- hdu4970
- Queue
- 正则表达式的使用(2)__常用的正则表达式(积累)
- 面试中strcpy源码的判分标准
- 淘宝数据库OceanBase SQL编译器部分 源码阅读--生成物理查询计划
- 天津出差系列(四)----第四天
- 淘宝数据库OceanBase SQL编译器部分 源码阅读--Schema模式
- poj 1546 进制转换
- Linux系统编程之访问文件夹及其文件属性
- xml简单功能