1 class Queue(): 2 def __init__(self, size): 3 self.queue = [] 4 self.size = size 5 self.head = 0 6 self.tail = 0 7 8 def isEmpty(self): 9 if self.head == self.tail: 10 return True 11 else: 12 return False 13 14 def isFull(self): 15 if self.tail - self.head == self.size: 16 return True 17 else: 18 return False 19 20 def inQueue(self, content): 21 if self.isFull(): 22 print "Queue is full" 23 else: 24 self.queue.append(content) 25 self.tail += 1 26 27 def outQueue(self): 28 if self.isEmpty(): 29 print "Queue is empty" 30 else: 31 self.queue.remove(self.queue[0]) 32 self.tail -= 1 33 34 def printQueueInfo(aQueue): 35 print "isEmpty: {0}".format(aQueue.isEmpty()) 36 print "isFull: {0}".format(aQueue.isFull()) 37 print "head: {0}".format(aQueue.head) 38 print "tail: {0}".format(aQueue.tail) 39 print "queue: {0}".format(aQueue.queue) 40 41 print "1. Initialise a stack with a size of 2, i.e. store at most 2 elements" 42 q = Queue(2) 43 printQueueInfo(q) 44 45 print " 2. Add 'a'" 46 q.inQueue('a') 47 printQueueInfo(q) 48 49 print " 3. Add 'b'" 50 q.inQueue('b') 51 printQueueInfo(q) 52 53 print " 4. Remove 'a'" 54 q.outQueue() 55 printQueueInfo(q) 56 57 print " 5. Add 'c'" 58 q.inQueue('c') 59 printQueueInfo(q)