PYTHON STACKS
LINK : PYTHON STACKS - NOTES
Menu-Driven Stack Program
# -*- coding: utf-8 -*-
"""
Created on Sun Oct 12 17:19:01 2025
@author: Kirti Hora
"""
'''
Menu-Driven Stack Program
1.PUSH
2.POP
3.DISPLAY
4. DISPLAY EVEN
'''
def push(stack):
elements = input("Enter elements to push (separated by spaces): ").split()
for item in elements:
n = int(item)
stack.append(n)
print("Element pushed:", n)
print("Current Stack:", stack)
def pop(stack):
if len(stack) == 0:
print("Stack Underflow! Stack is empty.")
else:
n = stack.pop()
print("Deleted Element:", n)
def disp(stack):
if len(stack) == 0:
print("Stack Underflow! Stack is empty.")
else:
print("Stack elements (Top to Bottom):")
for i in range(len(stack)-1, -1, -1):
print(stack[i])
def dispeven(stack):
if len(stack) == 0:
print("Stack is empty.")
else:
cnt = 0
print("Even elements in stack:")
for i in range(len(stack)-1, -1, -1):
if stack[i] % 2 == 0:
print(stack[i], end=" ")
cnt += 1
if cnt == 0:
print("No even elements found.")
else:
print("\nTotal even elements:", cnt)
# --- Main Program ---
stack = []
while True:
print("\n1. PUSH")
print("2. POP")
print("3. DISPLAY")
print("4. DISPLAY EVEN ELEMENTS")
print("5. EXIT")
ch = int(input("Enter Choice: "))
if ch == 1:
push(stack)
elif ch == 2:
pop(stack)
elif ch == 3:
disp(stack)
elif ch == 4:
dispeven(stack)
elif ch == 5:
print("Exiting... Thank you!")
break
else:
print("Invalid Choice! Please enter between 1–5.")
QUE 2:
Write a program to create a stack containing employee data with Empcode, Empname
and Salary represented as a list, .
Include functions to:
1. Push() - push the employee record into the stack
2. Pop() - pop the employee record from the stack
3. isempty() - check whether the stack is empty or not
4. dispstack() - display all the employee records of the stack
5. Display all employee records earning salary > user given
Sol;
# -*- coding: utf-8 -*-
"""
Created on Tue Oct 14 07:50:55 2025
@author: Kirti Hora
"""
# Stack implementation for Employee Records
def push(stack):
empcode = input("Enter Employee Code: ")
empname = input("Enter Employee Name: ")
salary = float(input("Enter Salary: "))
emp = [empcode, empname, salary]
stack.append(emp)
print("Employee record added successfully.\n")
def pop(stack):
if isempty(stack):
print("Stack is empty! Nothing to pop.\n")
else:
emp = stack.pop()
print("Popped Employee Record:", emp, "\n")
def isempty(stack):
return len(stack) == 0
def dispstack(stack):
if isempty(stack):
print("Stack is empty.\n")
else:
print("All Employee Records in Stack:")
# Display from top (last element) to bottom (first element)
for i in range(len(stack) - 1, -1, -1):
print(stack[i])
print()
def display_high_salary(stack):
if isempty(stack):
print("Stack is empty.\n")
else:
limit = float(input("Enter salary limit: "))
print("Employees earning more than", limit, ":")
found = False
for emp in stack:
if emp[2] > limit:
print(emp)
found = True
if not found:
print("No employee found with salary above given limit.\n")
print()
# Main Program
stack = []
while True:
print("1. Push Employee\n2. Pop Employee\n3. Display Stack\n4. Display Employees with Salary > Given Amount\n5. Exit")
ch = input("Enter your choice: ")
if ch == '1':
push(stack)
elif ch == '2':
pop(stack)
elif ch == '3':
dispstack(stack)
elif ch == '4':
display_high_salary(stack)
elif ch == '5':
print("Exiting program...")
break
else:
print("Invalid choice! Try again.\n")
QUE3:
A list containing records of products as:
L = [("Laptop", 90000), ("Mobile", 30000), ("Pen", 50), ("Headphones", 1500)]
Write the following user-defined functions to perform operations on a stack named Product to:
I. Push_element() – To push an item containing the product name and price of products costing more than 50 into the stack.
Output: [('Laptop', 90000), ('Mobile', 30000), ('Headphones', 1500)]
II. Pop_element() – To pop the items from the stack and display them. Also, display "Stack Empty" when there are no elements in the stack.
Output:
('Headphones', 1500)
('Mobile', 30000)
('Laptop', 90000)
Stack Empty
Sol:
L = [("Laptop", 90000), ("Mobile", 30000), ("Pen", 50), ("Headphones", 1500)]
Product = [] # Stack
def Push_element():
for item in L:
name, price = item
if price > 50000:
Product.append(item)
print("Stack after pushing elements:", Product)
print()
def Pop_element():
if len(Product) == 0:
print("Stack Empty")
else:
while len(Product) > 0:
item = Product.pop()
print(item)
print("Stack Empty")
Push_element()
Pop_element()
QUE 4:
Vedika has created a dictionary containing
names and marks as key-value pairs of 5 students. Write a program, with
separate user-defined functions to perform the following operations:
- Push
the keys (name of the student) of the dictionary into a stack, where the
corresponding value (marks) is greater than 70.
- Pop
and display the content of the stack.
The dictionary should be as follows:
d={“Ramesh”:58, “Umesh”:78, “Vishal”:90, “Khushi”:60,
“Ishika”:95}
Then the output will be: Umesh Vishal Ishika
SOL:
def push(stk, item):
stk.append(item)
def display(stk):
for i in stk:
print(i, end=" ")
stk = []
d = {"Ramesh":58, "Umesh":78, "Vishal":90, "Khushi":60, "Ishika":95}
for i in d:
if d[i] > 70:
push(stk, i)
display(stk)
#ABOVE CODE WITH USER INPUT IN DICTIONARY:
# Function to push elements into stack
def push(stk, item):
stk.append(item)
# Function to pop elements from stack
def Pop(stk):
if stk == []:
return None
else:
return stk.pop()
# Create an empty dictionary
d = {}
# Take number of students
n = int(input("Enter number of students: "))
# Input names and marks
for i in range(n):
name = input("Enter name of student: ")
marks = int(input("Enter marks of student: "))
d[name] = marks
# Initialize empty stack
stk = []
# Push names with marks > 70 into stack
for i in d:
if d[i] > 70:
push(stk, i)
# Pop and display stack contents
print("\nStudents with marks greater than 70 are:")
while True:
if stk != []:
print(Pop(stk), end=" ")
else:
break
Comments
Post a Comment