Проблема здесь не в вашей печати, а в вашей очереди.Посмотрите на ваш dequeue()
метод:
def dequeue(self):
if self.size() <= 0:
self.reset()
return("Queue Empty")
data = self.queue[self.head]
self.head += 1
return data
Ни в коем случае вы не удаляете что-либо из self.queue
, поэтому, естественно, когда вы попытаетесь распечатать это, оно не изменится.
Решение здесь вместо
data = self.queue[self.head]
, что само по себе является логической ошибкой (что, если в self.queue
и self.head == 5
есть только 3 элемента? Вы получитеerror), выполните
data = self.queue.pop(0)
, который удаляет первый элемент из self.queue
и возвращает его.Поскольку в enqueue()
вы добавляете в конец списка, а в dequeue()
вы удаляете из начала списка, это действительная очередь.