-
Notifications
You must be signed in to change notification settings - Fork 0
/
stack.py
40 lines (34 loc) · 928 Bytes
/
stack.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class Stack:
def __init__(self, size):
"""self.top points to the most recently inserted element"""
self.size = size
self.stack = [None]*size
self.top = -1
def push(self, x):
if self.top > self.size-1:
return 'Overflow'
self.top = self.top + 1
self.stack[self.top] = x
def pop(self):
if self.is_empty():
return 'Underflow'
else:
self.top = self.top - 1
return self.stack[self.top+1]
def is_empty(self):
if self.top < 0:
return True
return False
def __len__(self):
return self.top
if __name__ == "__main__":
stack = Stack(size=3)
print(stack.is_empty())
stack.push(15)
stack.push('string')
print(stack.pop())
stack.push(0.999)
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.is_empty())