Skip to main content

Grade XII - CS - Menu-Driven Stack Code | 14-10-25

 


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:

  1. Push the keys (name of the student) of the dictionary into a stack, where the corresponding value (marks) is greater than 70.
  2. 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

Popular posts from this blog

GRADE XII - Python Connectivity with MySQL

  Python Connectivity with MySQL In real-life applications, the data inputted by the user and processed by the application needs to be saved permanently, so that it can be used for future manipulation. Usually, input and output data is displayed during execution but not stored, as it resides in main memory , which is temporary — i.e., it gets erased once the application is closed. This limitation can be overcome by sending the data to be stored in a database , which is made accessible to the user through a Front-End interface . Key Concepts Database A database is an organized collection of data that is stored and accessed electronically from a computer system. DBMS (Database Management System) A DBMS is software that interacts with end-users, applications, and the database to capture and analyze data. Front-End The Front-End is the user interface of the application, responsible for input/output interaction with the user. Back-End The Back-End refe...

GRADE XII - CSV FILE

CSV FILE (COMMA SEPERATED VALUE) CSV NOTES LINK :  CSV NOTES - CLICK HERE Writing data to a CSV file involves the following steps: Import the csv module Open the CSV file in write mode ( "w" ) using open() Create the writer object Write the data into the file using the writer object Close the file using close() writerow() Method This method is used to write a single row to a CSV file. It takes a sequence (list or tuple) as its parameter, and writes the items as a comma-separated line in the file. You do not need to add a newline character (\n) — it automatically places the end-of-line marker.     EXAMPLE 1: import csv  # Importing the csv module # CSV file opened using relative path csv_fobj = open("emp.csv", "w")   # Writer object created wtr_obj = csv.writer(csv_fobj) # Record with field heading is written wtr_obj.writerow(["Empno", "Name", "Salary"]) # Records with data are...