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)