Python data structure stack using a list is one of the topics of CBSE Class 12 Computer science subject. In this article, we will discuss it. So let’s begin!!!
Topics Covered
Introduction to Python data structure stack
As data structure is a very important aspect of any programming language so is python too.
A data structure is a way of store, organize, or manage data in efficient and productive manner.
The python data structure stack is a linear data structure. It follows the principle of LIFO (Last In First Out). The representation of data is something like this:
By observing the above image you can understand the following:
- The data can be inserted or deleted from the top only
- Elements can be inserted or deleted any time
- The insert operation is known as push
- The delete operation is known as pop
- When the top element is inspected, it is known as a peek or inspection
- When we have a fixed-length list and we are trying to push an element in a list, it raises one error that is known as overflow
- When the list is empty and we are trying to pop an element, it will raise an error that is known as underflow
Watch this video for more understanding:
Implementation of stack using a list
To implement a python data structure stack create a menu-driven program followed by the functions for push, pop, peek, display and empty.
Process
Create a menu-driven program
I have created a function named main_menu() as follows:
s=[] # An empty list to store stack elements, initially its empty
top = None # This is top pointer for push and pop operation
def main_menu():
while True:
print("Stack Implementation")
print("1 - Push")
print("2 - Pop")
print("3 - Peek")
print("4 - Display")
print("5 - Exit")
ch = int(input("Enter the your choice:"))
if ch==1:
#push function calling
elif ch==2:
#pop function calling
elif ch==3:
#peek function calling
elif ch==4:
#display function calling
elif ch==5:
break
else:
print("Sorry, You have entered invalid option")
Checking stack underflow
To check whether the stack is empty or not write a function. Here I have written a function named check_stack_isEmpty(stk).
def check_stack_isEmpty(stk):
if stk==[]:
return True
else:
return False
Push function
A function to push an element. To push the element append() method is used as well as the position of the top should be changed. Observe the following code:
def push(stk,e):
stl.append(e)
top = len(stk)-1
Call this function in main_menu() function when ch = 1. Observe this code:
ele=int(input("Enter the value to push an element:"))
push(s,ele)
Display function
Write a function to check the element is inserted or not, observe this code:
def display(stk):
if check_stack_isEmpty(stk):
print("Stack is Empty")
else:
top = len(stk)-1
print(stk[top],"-Top")
for i in range(top-1,-1,-1):
print(stk[i])
Calling display in main_menu() function:
display(s)
Pop Function
The pop function requires validation to check whether the stack is underflow or not if it is not then use the logic to delete the element from the top. Have a look at this code:
def pop_stack(stk):
if check_stack_isEmpty(stk):
return "UnderFlow"
else:
e = stk.pop()
if len(stk)==0:
top = None
else:
top = len(stk)-1
return e
Function call code in main_menu:
e=pop_stack(s)
if e=="UnderFlow":
print("Stack is underflow!")
else:
print("Element popped:",e)
Peek Function
The code is similar to pop, instead of popping elements just write a statement to display the value. Observe this code:
def peek(stk):
if check_stack_isEmpty(stk):
return "UnderFlow"
else:
top = len(stk)-1
return stk[top]
Function call code in main_menu() function:
e=pop_stack(s)
if e=="UnderFlow":
print("Stack is underflow!")
else:
print("The element on top is:",e)
Watch this video for more understanding and practical demonstration:
If you looking for questions based on the stack:
Download the complete program .py file
Thank you for reading this article. Now implement this by yourself and enjoy the learning!!
Share this article with your friends and circle. Comment your views, feedback or any doubt in the comment section. See in the next article, till then keep reading, keep sharing!!!!