-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathstack.py
49 lines (41 loc) · 1.2 KB
/
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
41
42
43
44
45
46
47
48
49
class Stack:
def __init__(self, limit=10):
self.stack = []
self.limit = limit
# for printing the stack contents
def __str__(self):
return " ".join([str(i) for i in self.stack])
# for pushing an element on to the stack
def push(self, data):
if len(self.stack) >= self.limit:
print("Stack Overflow")
else:
self.stack.append(data)
# for popping the uppermost element
def pop(self):
if len(self.stack) <= 0:
print("Stack Underflow")
else:
self.stack.pop()
# for peeking the top-most element of the stack
def peek(self):
if len(self.stack) <= 0:
print("Stack Underflow")
else:
return self.stack[-1]
# to check if stack is empty
def isEmpty(self):
return len(self.stack) == 0
# for checking the size of stack
def size(self):
return len(self.stack)
if __name__ == "__main__":
myStack = Stack()
for i in range(10):
myStack.push(i)
print(myStack)
myStack.pop() # popping the top element
print(myStack)
myStack.peek() # printing the top element
myStack.isEmpty()
myStack.size()