#!/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 iter class _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] self._curItem += 1 return item else: raise StopIteration # Implementation of the Queue ADT using a Python list class 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 queue CSCI-112 MATH-121 HIST-340 ECON-101 #dequeue one item #output smith after dequeue MATH-121 HIST-340 ECON-101 #get the length of queue the lenght of queue is 3 #check wheter the queue is empty queue is not empty! #dequeue all items #check wheter the queue is empty after dequeue all items queue is empty!
时间: 2024-10-04 03:41:11