Dsa Lab 11 Azlan
Dsa Lab 11 Azlan
class Queue:
def __init__(self):
self.front = None
self.rear = None
def is_empty(self):
return self.front is None
def dequeue(self):
if self.is_empty():
print("Queue is empty")
return None
else:
removed_item = self.front.data
if self.front == self.rear:
self.front = self.rear = None
else:
self.front = self.front.next
return removed_item
def display(self):
if self.is_empty():
print("Queue is empty")
else:
current = self.front
while current:
print(current.data, end=" ")
current = current.next
print()
q = Queue()
while True:
print("\n1. Enqueue")
print("2. Dequeue")
print("3. Update")
print("4. Search")
print("5. Display")
print("6. Exit")
if choice == 1:
data = int(input("Enter data to enqueue: "))
q.enqueue(data)
elif choice == 2:
item = q.dequeue()
if item is not None:
print(f"Dequeued item: {item}")
elif choice == 3:
old_data = int(input("Enter data to update: "))
new_data = int(input("Enter new data: "))
if q.update(old_data, new_data):
print("Updated successfully")
else:
print("Data not found in the queue")
elif choice == 4:
data = int(input("Enter data to search: "))
if q.search(data):
print("Data found in the queue")
else:
print("Data not found in the queue")
elif choice == 5:
print("Queue contents:")
q.display()
elif choice == 6:
print("Exiting...")
break
else:
print("Invalid choice! Please enter a valid option.")
OUTPUT:
QUESTION 2:
class QueueUsingStacks:
def __init__(self):
self.main_stack = []
self.temp_stack = []
def dequeue(self):
if self.isEmpty(self.main_stack):
print("Queue is empty")
return None
return self.pop(self.main_stack)
queue = QueueUsingStacks()
queue.enqueue(6)
queue.enqueue(7)
queue.enqueue(8)
queue.enqueue(9)
print("Queue contents after enqueue:")
while True:
item = queue.dequeue()
if item is not None:
print(item, end=" ")
else:
break
self.age = age
self.next = None
class Queue:
def __init__(self):
self.front = None
self.rear = None
def is_empty(self):
new_node = Node(age)
if self.is_empty():
else:
self.rear.next = new_node
self.rear = new_node
def dequeue(self):
if self.is_empty():
print("Queue is empty")
return None
else:
removed_age = self.front.age
if self.front == self.rear:
else:
self.front = self.front.next
return removed_age
def sort_queue(self):
return
sorted_queue = Queue()
max_age = self.find_max_age()
self.remove_age(max_age)
sorted_queue.enqueue(max_age)
self.front = sorted_queue.front
self.rear = sorted_queue.rear
def find_max_age(self):
max_age = float('-inf')
current = self.front
while current:
max_age = current.age
current = current.next
return max_age
prev = None
while current:
if current.age == age:
if prev:
prev.next = current.next
else:
self.front = current.next
if current == self.rear:
self.rear = prev
break
prev = current
current = current.next
def display(self):
current = self.front
while current:
current = current.next
print()
citizens_queue = Queue()
ages = [18, 35, 65, 68, 45, 55, 22, 58, 67, 43]
citizens_queue.enqueue(age)
citizens_queue.sort_queue()
citizens_queue.display()