class Queue:
def __init__(self):
self.queue = []
def enqueue(self, item):
self.queue.append(item)
def dequeue(self):
if not self.is_empty():
return self.queue.pop(0)
else:
raise IndexError("Dequeue from an empty queue")
def is_empty(self):
return len(self.queue) == 0
def size(self):
return len(self.queue)
def __str__(self): # print q 1
return "Queue: [" + ", ".join(str(item) for item in self.queue) + "]"
def print_queue(self): # print q 2
print("Queue contents:", self.queue)
# Create a queue
q = Queue()
# Enqueue elements
q.enqueue("A")
q.enqueue("B")
q.enqueue("C")
print(q)
# Dequeue elements
print("Dequeued:", q.dequeue())
print("Dequeued:", q.dequeue())
print("Queue contents main:", q.queue)
q.print_queue()
# Check if the queue is empty
print("Is the queue empty?", q.is_empty())
# Dequeue the last element
print("Dequeued:", q.dequeue())
print("Is the queue empty?", q.is_empty())
'''
run:
Queue: [A, B, C]
Dequeued: A
Dequeued: B
Queue contents main: ['C']
Queue contents: ['C']
Is the queue empty? False
Dequeued: C
Is the queue empty? True
'''