1 class Stack(): 2 def __init__(self, size): 3 self.stack = [] 4 self.size = size 5 self.top = -1 6 7 def push(self, content): 8 if self.isFull(): 9 print "Stack is full" 10 else: 11 self.stack.append(content) 12 self.top += 1 13 14 def pop(self): 15 if self.isEmpty(): 16 print "Stack is empty" 17 else: 18 self.stack.pop() 19 self.top -= 1 20 21 def isFull(self): 22 if self.top + 1 == self.size: 23 return True 24 else: 25 return False 26 27 def isEmpty(self): 28 if self.top == -1: 29 return True 30 else: 31 return False 32 33 def printStackInfo(aStack): 34 print "isEmpty: {0}".format(aStack.isEmpty()) 35 print "isFull: {0}".format(aStack.isFull()) 36 print "top: {0}".format(aStack.top) 37 print "stack: {0}".format(aStack.stack) 38 39 print "1. Initialise a stack with a size of 2, i.e. store at most 2 elements" 40 s = Stack(2) 41 printStackInfo(s) 42 43 print " 2. Push 'a'" 44 s.push('a') 45 printStackInfo(s) 46 47 print " 3. push 'b'" 48 s.push('b') 49 printStackInfo(s) 50 51 print " 4. push 'c'" 52 s.push('c') 53 printStackInfo(s) 54 55 print " 5. pop the top element" 56 s.pop() 57 printStackInfo(s) 58 59 print " 6. pop the top element" 60 s.pop() 61 printStackInfo(s) 62 63 print " 7. pop the top element" 64 s.pop() 65 printStackInfo(s)