CSC1108_Labs/Practices/stack.py

67 lines
1.6 KiB
Python
Executable File

class Stack:
# Complete the code here
def __init__(self):
self.top = -1
self.data = []
def push(self, value):
self.data.append(0)
self.top += 1
self.data[self.top] = value
def pop(self):
value = self.data[self.top]
del self.data[self.top]
self.top -= 1
return value
def peek(self):
if self.top != -1 and self.data is not None:
return self.data[self.top]
else:
return "Empty Stack"
def printStack(self):
print(self.data)
def main():
tmpStack = Stack()
print(tmpStack.peek())
tmpStack.push(10)
topOfStack = tmpStack.peek()
assert (topOfStack == 10), f"Top of stack not 10, got:{topOfStack}"
tmpStack.push(11)
topOfStack = tmpStack.peek()
assert (topOfStack == 11), f"Top of stack not 11, got:{topOfStack}"
tmpStack.push(12)
topOfStack = tmpStack.peek()
assert (topOfStack == 12), f"Top of stack not 12, got:{topOfStack}"
tmpStack.push(13)
topOfStack = tmpStack.peek()
assert (topOfStack == 13), f"Top of stack not 13, got:{topOfStack}"
tmpStack.push(14)
topOfStack = tmpStack.peek()
assert (topOfStack == 14), f"Top of stack not 14, got:{topOfStack}"
tmpStack.pop()
topOfStack = tmpStack.peek()
assert (topOfStack == 13), f"Top of stack not 13, got:{topOfStack}"
tmpStack.pop()
topOfStack = tmpStack.peek()
assert (topOfStack == 12), f"Top of stack not 12, got:{topOfStack}"
print("No Errors! Stack contents: ")
tmpStack.printStack()
if __name__ == "__main__":
main()