Professional Documents
Culture Documents
Ex 6
Ex 6
4. Function enqueue(item):
a. If is_full() is true, print "Queue is full. Cannot enqueue."
b. If is_empty() is true, set front and rear to 0.
c. Increment rear by 1 (rear = (rear + 1) % max_size).
d. Set queue[rear] to the given item.
e. Print "Item enqueued to the queue."
5. Function dequeue():
a. If is_empty() is true, print "Queue is empty. Cannot dequeue."
b. Store the item at queue[front] in a variable (removed_item).
c. If front is equal to rear, set front and rear to -1.
Otherwise, increment front by 1 (front = (front + 1) % max_size).
d. Print "Item dequeued from the queue."
e. Return removed_item.
6. Function peek():
- If is_empty() is true, print "Queue is empty."
- Otherwise, print "Front element: " followed by queue[front].
7. Function display():
- If is_empty() is true, print "Queue is empty."
- Otherwise, initialize an index i with front.
a. Loop while true:
- Print queue[i].
- If i is equal to rear, break from the loop.
- Otherwise, increment i by 1 (i = (i + 1) % max_size).
b. Print a newline.
8. Example usage:
- Create a CircularQueue instance with the desired max_size.
- Perform enqueue, dequeue, peek, and display operations as needed.
PROGRAM:
class CircularQueue:
def __init__(self, max_size):
self.max_size = max_size
self.queue = [None] * max_size
self.front = self.rear = -1
def is_empty(self):
return self.front == -1
def is_full(self):
return (self.rear + 1) % self.max_size == self.front
def dequeue(self):
if self.is_empty():
print("Queue is empty. Cannot dequeue.")
else:
removed_item = self.queue[self.front]
if self.front == self.rear:
self.front = self.rear = -1
else:
self.front = (self.front + 1) % self.max_size
print(f"{removed_item} dequeued from the queue.")
return removed_item
def peek(self):
if self.is_empty():
print("Queue is empty.")
else:
print(f"Front element: {self.queue[self.front]}")
def display(self):
if self.is_empty():
print("Queue is empty.")
else:
i = self.front
while True:
print(self.queue[i], end=" ")
if i == self.rear:
break
i = (i + 1) % self.max_size
print()
# Example usage:
max_size = 5
traffic_queue = CircularQueue(max_size)
traffic_queue.enqueue("North: 5 vehicles")
traffic_queue.enqueue("East: 3 vehicles")
traffic_queue.enqueue("South: 2 vehicles")
traffic_queue.enqueue("West: 4 vehicles")
traffic_queue.display()
traffic_queue.dequeue()
traffic_queue.dequeue()
traffic_queue.display()
traffic_queue.enqueue("North: 1 vehicle")
traffic_queue.enqueue("South: 7 vehicles")
traffic_queue.display()
OUTPUT:
North: 5 vehicles enqueued to the queue.
East: 3 vehicles enqueued to the queue.
South: 2 vehicles enqueued to the queue.
West: 4 vehicles enqueued to the queue.
North: 5 vehicles East: 3 vehicles South: 2 vehicles West: 4 vehicles