From 6c3b27424693342fbdaa94d54fa35158463c74a7 Mon Sep 17 00:00:00 2001 From: Omkar Pathak Date: Sun, 16 Jul 2017 11:25:32 +0530 Subject: [PATCH] Python implementation of Stack --- data_structures/Stacks/Stack.py | 50 +++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 data_structures/Stacks/Stack.py diff --git a/data_structures/Stacks/Stack.py b/data_structures/Stacks/Stack.py new file mode 100644 index 000000000..41bbdc9d2 --- /dev/null +++ b/data_structures/Stacks/Stack.py @@ -0,0 +1,50 @@ +# 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()