67 lines
1.6 KiB
Python
Executable File
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()
|