python 用list实现队列_Python 使用list实现队列 (基于class, 包含迭代器)

#!/usr/bin/python # -*- coding: utf-8 -*-'''Created on 2015-1-27@author: beyondzhou@name: test_listqueue.py'''def test_listqueue(): # import pyListQueue from myqueue import pyListQueue print '#Init a queue named smith using enqueue' smith = pyListQueue() smith.enqueue('CSCI-112') smith.enqueue('MATH-121') smith.enqueue('HIST-340') smith.enqueue('ECON-101') print '\n#output smith queue' for element in smith: print element print '\n#dequeue one item' smith.dequeue() print '\n#output smith after dequeue' for element in smith: print element print '\n#get the length of queue' print 'the lenght of queue is ', len(smith) print '\n#check wheter the queue is empty' if smith.isEmpty(): print 'queue is empty!' else: print 'queue is not empty!' print '\n#dequeue all items' while not smith.isEmpty(): smith.dequeue() print '\n#check wheter the queue is empty after dequeue all items' if smith.isEmpty(): print 'queue is empty!' else: print 'queue is not empty!' if __name__ == "__main__": test_listqueue()

# Implementation of iterclass _pyListQueueIterator: def __init__(self, theList): self._setItems = theList self._curItem = 0 def __iter__(self): return self def next(self): if self._curItem< len(self._setItems): item = self._setItems self._curItem += 1 return item else: raise StopIteration # Implementation of the Queue ADT using a Python listclass pyListQueue: # Creates an empty queue def __init__(self): self._qList = list() # Returns True if the queue is empty def isEmpty(self): return len(self) == 0 # Returns the number of items in the queue def __len__(self): return len(self._qList) # Adds the given item to the queue def enqueue(self, item): self._qList.append(item) # Removes and returns the first item in the queue def dequeue(self): assert not self.isEmpty(), "Cannot dequeue from an empty queue." return self._qList.pop(0) # Returns an iterator for traversing the list of items def __iter__(self): return _pyListQueueIterator(self._qList)

#Init a queue named smith using enqueue#output smith queueCSCI-112MATH-121HIST-340ECON-101#dequeue one item#output smith after dequeueMATH-121HIST-340ECON-101#get the length of queuethe lenght of queue is 3#check wheter the queue is emptyqueue is not empty!#dequeue all items#check wheter the queue is empty after dequeue all itemsqueue is empty!

免责申明:本栏目所发资料信息部分来自网络,仅供大家学习、交流。我们尊重原创作者和单位,支持正版。若本文侵犯了您的权益。请点击这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值