Wednesday, April 1, 2026

Stack , Queue , Linked List, Sorting and Searching Programs in Pythons for IT Students

Prepared By: Prof. Uday Shah (HOD-IT) 

Ruparel Education Pvt. Ltd.


Stack, Queue, Linked List, Sorting, and

 Searching Programs in Python for IT Students 


CHAPTER 3: STACK PROGRAM

stack=[]

def push():

    no =int(input("Enter Stack Element: "))

    stack.append(no)

    print("Element Add Successfully")

    display()

 

def pop():

    if len(stack)==0:

        print("Stack is Empty")

    else:

        no = stack.pop()

        print("Element Remove from Stack: ",no)

        display()

 

def peek():

    if len(stack)==0:

        print("Stack is Empty")

    else:

        no = stack[-1]

        print("Peek Element from Stack: ",no)

        display()

 

def display():

    if len(stack)==0:

        print("Stack is Empty")

    else:

        print("Stack ELement: ")

        for i in stack:

            print(i,end="->")

 

while True:

    print("\n\t\t Stack Menu Driven Program")

    print("1.\t Push")

    print("2.\t Pop")

    print("3.\t Peep | Peek")

    print("4.\t Display")

    print("5.\t Exit")

 

    ch=int(input("Enter Choice: "))

    if ch==1:

        push()

    elif ch==2:

        pop()

    elif ch==3:

        peek()

    elif ch==4:

        display()

    elif ch==5:

        print("Exit")

        break

    else:

        print("Invalid Input")

CHAPTER 3: QUEUE PROGRAM

queue =[]

def enqueue():

    no = int(input("Enter Queue Element: "))

    queue.append(no)

    print("ELement Add Successfully")

    display()

 

def dequeue():

    if len(queue)==0:

        print("Queue is Empty")

        return

    no= queue.pop(0)

    print("Element remove from Queue: ",no)

    display()

 

def peek():

    if len(queue)==0:

        print("Queue is Empty")

        return

    no = queue[0]

    print("Peek Element: ",no)

    display()

 

def display():

    if len(queue)==0:

        print("Queue is Empty")

        return

    print("Queue Element: ")

    for i in queue:

        print(i,end="->")

 

while True:

    print("\n\t\tQueue Menu Driven Program")

    print("1.\tEnqueue")

    print("2.\tDequeue")

    print("3.\tPeek")

    print("4.\tDisplay")

    print("5.\tExit")

 

    ch = int(input("Enter Your Choice"))

    if ch==1:

        enqueue()

    elif ch==2:

        dequeue()

    elif ch==3:

        peek()

    elif ch==4:

        display()

    elif ch==5:

        print("Exit")

        break

    else:

        print("Invalid Choice")


 

CHAPTER 3: CIRCULAR QUEUE PROGRAM

size=int(input("Enter Size of Circular Queue: "))

queue=[None]*size

print(queue)

f=-1

r=-1

def enqueue():

    global f,r

    if (r+1)%size==f:

        print(Queue is Overflow)

    else:

        no=int(input("Enter Queue element: "))

        if f==-1:

            f=f+1

            r=r+1

        elif r==size-1:

            r=0

        else:

            r=r+1

        queue[r]=no

        display()

 

def dequeue():

    global f,r

    if f==-1:

        print("Queue is Empty")

        return

    print("Element remove: ",queue[f])

    queue[f]=None

    if f==r:

        f=-1

        r=-1

    elif f==size-1:

        f=0

    else:

        f=f+1

    display()

 

def peek():

    global f,r

    if f==-1:

        print("Queue is Empty")

        return

    print("Peek Element: ",queue[f])

 

def display():

    global f,r

    if f==-1:

        print("Queue is Empty")

        return

    else:

        print("Queue Element: ")

        for i in queue:

            print(i,end="->")

while True:

    print("\n\t\t Circular Queue Menu Driven Program")

    print("1.\tEnqueue")

    print("2.\tDequeue")

    print("3.\tPeep|Peek")

    print("4.\tDisplay")

    print("5.\tExit")

    ch=int(input("Enter Choice: "))

    if ch==1:

        enqueue()

    elif ch==2:

        dequeue()

    elif ch==3:

        peek()

    elif ch==4:

        display()

    elif ch==5:

        print("Exit")

        break

    else:

        print("Invalid Input")

CHAPTER 3: SINGLY LINKED LIST

class Node:

    def __init__(self,data):

        self.data = data

        self.next = None

 

head = None

 

def create_beg():

    global head

    data=int(input("Enter Element: "))

    new_node = Node(data)

    new_node.next = head

    head = new_node

    display()

   

def create():

    global head

    data = int(input("Enter Element: "))

    new_node = Node(data)

 

    if head is None:

        head = new_node

        return

    temp = head

   

    while temp.next:

        temp = temp.next

    temp.next = new_node

    print("Element Add Succesfully")

    display()

   

def create_bet():

    global head

    data = int(input("Enter Element: "))

    place = int(input("Enter Place: "))

    new_node=Node(data)

 

    if head is None:

        head = new_node

        return

    if place ==1:

        new_node.next = head

        head = new_node

        return

 

    temp = head

    for i in range(place-2):

        temp = temp.next

   

    new_node.next = temp.next

    temp.next = new_node

    print("Element Add Between Successufully")

    display()

 

def delete_beg():

    global head

    if head is None:

        print("List is Empty")

        return

    print("Delete Element: ", head.data)

    head=head.next

    display()

 

def delete_bet():

    global head

    if head is None:

        print("List is Empty")

        return

    no = int(input("Enter Node to delete: "))

    temp = head

    if temp.data==no:

        print("Delete ELement: ",temp.data)

        head=temp.next

        return

    while temp.next:

        if temp.next.data==no:

            print("Delete Element: ", temp.next.data)

            temp.next = temp.next.next

            display()

            return

        temp = temp.next

    print("Element Not Found...")

 

def delete():

    global head

    if head is None:

        print("List is Empty")

        return

    temp=head

    if temp.next is None:

        print("Delete Element: ", temp.data)

        head=None

        return

    while temp.next.next:

        temp =temp.next

    print("Delete Element: ", temp.next.data)

    temp.next = None

    display()

 

def search():

    global head

    if head is None:

        print("List is Empty")

        return

    no = int(input("Enter Element to Search: "))

    temp = head

    pos = 1

    if temp.data== no:

        print("Element Found at Position: ",pos)

        return

    while temp:

        if temp.data==no:

            print("Element Found at Position: ",pos)

            return

        temp = temp.next

        pos =pos+1

    print("Element Not Found")

    display()

 

def display():

    global head

    if head is None:

        print("List is Empty")

        return

    temp = head

    while temp:

        print(temp.data,end="->")

        temp = temp.next

       

while True:

    print("\n\t\tSingly Link List")

    print("1.\tCreate Beg")

    print("2.\tCreate")

    print("3.\tCreate Bet")

    print("4.\tDelete Beg")

    print("5.\tDelete")

    print("6.\tDelete Bet")

    print("7.\tSearch Element")

    print("8.\tDisplay")

    print("9.\tExit")

 

    ch = int(input("Enter Choice: "))

    if ch==1:

        create_beg()

    elif ch==2:

        create()

    elif ch==3:

        create_bet()

    elif ch==4:

        delete_beg()

    elif ch==5:

        delete()

    elif ch==6:

        delete_bet()

    elif ch==7:

        search()

    elif ch==8:

        display()

    elif ch==9:

        print("Exit")

        break

    else:

        print("Invalid input")


 

CHAPTER 3: STACK USING LINKED LIST

class Node:

    def __init__(self,data):

        self.data = data

        self.next = None

 

head = None

 

def create():

    global head

    data = int(input("Enter Element: "))

    new_node = Node(data)

 

    if head is None:

        head = new_node

        display()

        return

    temp = head

   

    while temp.next:

        temp = temp.next

    temp.next = new_node

    print("Element Add Succesfully")

    display()

 

def delete():

    global head

    if head is None:

        print("List is Empty")

        return

    temp=head

    if temp.next is None:

        print("Delete Element: ",temp.data)

        head=None

        return

    while temp.next.next:

        temp =temp.next

    print("Delete Element: ",temp.next.data)

    temp.next = None

    display()

 

def display():

    global head

    if head is None:

        print("List is Empty")

        return

    temp = head

    while temp:

        print(temp.data,end="->")

        temp = temp.next

       

while True:

    print("\n\t\tStack Program")

    print("1.\tCreate")

    print("2.\tDelete")

    print("3.\tDisplay")

    print("4.\tExit")

 

    ch = int(input("Enter Your Choice: "))

    if ch==1:

        create()

    elif ch==2:

        delete()

    elif ch==3:

        display()

    elif ch==4:

        print("Exit")

        break

    else:

        print("Invalid Choice")


 

CHAPTER 3: QUEUE USING LINKED LIST

#Queue using LinkedList

class Node:

    def __init__(self,data):

        self.data = data

        self.next = None

 

head = None

 

def create():

    global head

    data = int(input("Enter Element: "))

    new_node = Node(data)

 

    if head is None:

        head = new_node

        display()

        return

    temp = head

   

    while temp.next:

        temp = temp.next

    temp.next = new_node

    print("Element Add Succesfully")

    display()

 

def delete_beg():

    global head

    if head is None:

        print("List is Empty")

        return

    print("Delete Element: ", head.data)

    head=head.next

    display()

 


 

def display():

    global head

    if head is None:

        print("List is Empty")

        return

    temp = head

    while temp:

        print(temp.data,end="->")

        temp = temp.next

       

while True:

    print("\n\t\tQueue Program")

    print("1.\tCreate")

    print("2.\tDelete Beg")

    print("3.\tDisplay")

    print("4.\tExit")

 

    ch = int(input("Enter Your Choice: "))

    if ch==1:

        create()

    elif ch==2:

        delete_beg()

    elif ch==3:

        display()

    elif ch==4:

        print("Exit")

        break

    else:

        print("Invalid Choice")


 

CHAPTER 4: BUBBLE SORT

def bubble_sort(a):

    l = len(a)

    for i in range(0,l):

        for j in range(0,l-1):

            if a[j]>a[j+1]:

                a[j],a[j+1]=a[j+1],a[j]

 

a=[92,65,33,85,18,23,45,8,20,10]

print("Before: ",a)

bubble_sort(a)

print("After: ",a)

CHAPTER 4: SELECTION SORT

def selection_sort(a):

    l = len(a)

    for i in range(0,l):

        for j in range(i+1,l):

            if a[i]>a[j]:

                a[i],a[j]=a[j],a[i]

 

a=[92,65,33,85,18,23,45,8,20,10]

print("Before: ",a)

selection_sort(a)

print("After: ",a)

CHAPTER 4: LINEAR SEARCH

def linear_search(a,s):

    flag =0

    l = len(a)

    for i in range(0,l):

        if a[i]==s:

            flag=1

            print("Element Found")

            break

    if flag==0:

        print("Element Not Found")

 

a=[92,65,33,85,18,23,45,8,20,10]

print("Elements: ",a)

s = int(input("Enter Searching Element: "))

linear_search(a,s)

 

CHAPTER 4: BINARY SEARCH

def bubble_sort(a):

    l = len(a)

    for i in range(0,l):

        for j in range(0,l-1):

            if a[j]>a[j+1]:

                a[j],a[j+1]=a[j+1],a[j]

               

def binary_search(a,s):

    low=0

    high=len(a)-1

    flag=0

    while low<=high:

        mid = (low+high)//2

        if a[mid]==s:

            print("Element Found")

            flag=1

            break

        elif a[mid]>s:

            high=mid-1

        else:

            low=mid+1

    if flag==0:

        print("Element Not Found")

 

a=[92,65,33,85,18,23,45,8,20,10]

bubble_sort(a)

print("Elements: ",a)

s = int(input("Enter Searching Element: "))

binary_search(a,s)