Lab Task(s): 7
Write a program as follows for QUEUE
----------------------Array based implementation of QUEUE----------------------------------- 1.
Enqueue an element to queue
2. Dequeue an element from queue
3. Display all
4. Exit
-------------------------------------------------------------------------------------------------------------
MAX_SIZE = 5 # You can increase this size as needed
queue = [None] * MAX_SIZE
front = -1
rear = -1
def enqueue():
global rear, front
if rear == MAX_SIZE - 1:
print("Queue is Full (Overflow)!")
else:
element = input("Enter the element to
enqueue: ") if front == -1:
front = 0
rear += 1
queue[rear] = element
print(f"{element} enqueued successfully.")
def dequeue():
global front, rear
if front == -1 or front > rear:
print("Queue is Empty (Underflow)!")
else:
removed_element = queue[front]
print(f"Dequeued element:
{removed_element}") front += 1
if front > rear:
# Reset queue after last element is
dequeued front = rear = -1
def display():
if front == -1 or front >
rear:
print("Queue is Empty!")
else:
print("Queue elements:")
for i in range(front, rear +
1):
print(queue[i])
# Menu
while True:
print("\n----------------------Array based implementation of
QUEUE-----------------------------------")
print("1. Enqueue an element to queue")
print("2. Dequeue an element from queue")
print("3. Display all")
print("4. Exit")
print("-------------------------------------------------------------------------------------------------------------")
choice = input("Please Enter Your Choice: ")
if choice == '1':
enqueue()
elif choice == '2':
dequeue()
elif choice == '3':
display()
elif choice == '4':
print("Exiting program. Goodbye!")
break
else:
print("Invalid choice! Please enter 1, 2, 3, or
4.")
Q2:Test the program using the following procedure: QUEUE of
size N=6 Call enQueue(5)
Call enQueue(2)
Call enQueue(3)
Call deQueue ()
call deQueue()
Call enQueue(6)
Call enQueue(3)
Call Display()
OPERATIONS STEP BY STEP:
[Link](5) → Queue: [5]
[Link](2) → Queue: [5, 2]
[Link](3) → Queue: [5, 2, 3]
[Link]() → Removes 5 →
Queue: [2, 3] [Link]() →
Removes 2 → Queue: [3]
[Link](6) → Queue: [3, 6]
[Link](3) → Queue: [3, 6, 3]
[Link]() → Output:
Q3:Write a program as follows for Circular
QUEUE.
----------------------Array based implementation of
QUEUE-----------------------------------
1. Enqueue an element to queue
2. Dequeue an element from queue
3. Display all
4. Exit
-------------------------------------------------------------------
------------------------------------------
Please Enter Your Choice:
MAX_SIZE = 5 # You can change the size of the
queue class CircularQueue: def init(self,
size=MAX_SIZE): [Link] = [None] * size
[Link] = -1 [Link] = -1 [Link] = size
def is_full(self):
return ([Link] + 1) % [Link]
==
[Link]
def is_empty(self):
return [Link] ==
-1
def enqueue(self, value):
if self.is_full():
print("Queue is Full!")
return
if self.is_empty():
[Link] = 0
[Link] = ([Link] + 1) %
[Link] [Link][[Link]] =
value
print(f"Enqueued: {value}")
def dequeue(self):
if self.is_empty():
print("Queue is Empty!")
return
removed = [Link][[Link]]
if [Link] == [Link]:
[Link] = [Link] = -1 # Queue
is now empty
else:
[Link] = ([Link] + 1) %
[Link]
print(f"Dequeued: {removed}")
def display(self):
if self.is_empty():
print("Queue is Empty!")
return
print("Queue Elements:")
i = [Link]
while True:
print([Link][i], end="
") if i == [Link]:
break
i = (i + 1) % [Link]
print()
Menu-driven program
def main(): q = CircularQueue() while True: print("\
n----------------------Array based implementation of
QUEUE-----------------------------------") print("1. Enqueue an
element to queue") print("2. Dequeue an element
from queue") print("3. Display all") print("4. Exit")
print("---------------------------------------------------------------------
----------------------------------------") choice = input("Please
Enter Your Choice: ")
if choice == '1':
value = input("Enter the value to
enqueue: ")
[Link](value)
elif choice == '2':
[Link]()
elif choice == '3':
[Link]()
elif choice == '4':
print("Exiting program.")
break
else:
print("Invalid choice. Please enter
a valid option.")
if name == "main": main()
Q4:Test the program using the following
procedure: QUEUE of size N=6
Call enQueue(5)
Call enQueue(2)
Call enQueue(3)
Call deQueue
()
call
deQueue()
Call
enQueue(6)
Call
enQueue(3)
Call Display()
Initial Setup:
•Queue size: 6
•Queue is empty at
start.
•Let's assume a typical circular queue structure
with: ofront pointing to the index of the front
element.
orear pointing to the index where the next
element will be inserted.
We’ll assume front = -1 and rear = -1
initially to indicate the queue is empty.
Step-by-step Execution:
1. enQueue(5)
•Queue: [5, _, _, _, _, _]
•front = 0, rear = 0
2. enQueue(2)
•Queue: [5, 2, _, _, _, _]
•rear = 1
3. enQueue(3)
•Queue: [5, 2, 3, _, _, _]
•rear = 2
4. deQueue()
•Removes 5 (element at front)
•front = 1
•Queue (logically): [_, 2, 3, _, _, _]
5. deQueue()
•Removes 2
•front = 2
•Queue (logically): [_, _, 3, _, _, _]
6. enQueue(6)
•rear = 3
•Queue: [_, _, 3, 6, _, _]
7. enQueue(3)
•rear = 4
•Queue: [_, _, 3, 6, 3, _]
8. Display()
•front = 2, rear = 4
•Elements from front to rear: 3, 6, 3