Sunday, October 25, 2015

Stack Implementation in Python

Stack is one of important concepts in data structure. Stack can be defined as abstract data type (ADT) that collects items with LIFO (last in, first out) principle. Two operations are known for stack i.e. push and pop. Push will add an item into stack, while pop will remove the last element that was added into stack. 

You may think stack concept as if you arrange your plates. You will put a plate above other plates, but when you want to take one plate, you will take it from the top.

To implement it in python, you will have at least three methods i.e. __init__, push, and pop. However, here we will add some more methods i.e. isEmpty (to check if the stack is empty), peek (to get the item at the top) and size(to get the number of item(s) in the stack). Here are the implementation in python:

 class Stack:  
   def __init__(self):  
     self.items = []  
   def isEmpty(self):  
     return self.items == []  
   def push(self, item):  
     self.items.append(item)  
   def pop(self):  
     if not self.isEmpty():  
       return self.items.pop()  
   def peek(self):  
     if not self.isEmpty():  
       return self.items[len(self.items)-1]  
   def size(self):  
     return len(self.items)  
So, now you may implement the stack like following:
 s = Stack()  
 s.push('arwan')  
 s.push('ahmad')  
 s.push('khoiruddin')  
 print(s.isEmpty())  
 s.pop()  
 print(s.size())  
The output will be
 False  
 2  
By the way, I am using Python 3. However, for python 2 implementation, for this code, you will just need to change the print command. So it will be like this.
  s = Stack()   
  s.push('arwan')   
  s.push('ahmad')   
  s.push('khoiruddin')   
  print s.isEmpty()   
  s.pop()   
  print s.size()  
Hope it helps.

No comments: