mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-25 05:51:08 +00:00
51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
|
# Author: OMKAR PATHAK
|
||
|
|
||
|
class Stack(object):
|
||
|
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:
|
||
|
return -1
|
||
|
else:
|
||
|
return self.stack.pop()
|
||
|
|
||
|
# for peeking the top-most element of the stack
|
||
|
def peek(self):
|
||
|
if len(self.stack) <= 0:
|
||
|
return -1
|
||
|
else:
|
||
|
return self.stack[len(self.stack) - 1]
|
||
|
|
||
|
# to check if stack is empty
|
||
|
def isEmpty(self):
|
||
|
return self.stack == []
|
||
|
|
||
|
# 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()
|