我正在尝试使用具有入队、出队和长度功能的链接实现来实现队列类。据我对队列的理解,当第一次实现时,队列指向最初指向无的头和尾节点。随着项目被添加到队列中,一个节点指向该项目,头节点保持不变,而尾节点指向新项目。
我尝试在 python 中使用以下代码来实现这一点,但它似乎不起作用。我不确定我的逻辑是错误的,还是编码错误,或两者兼而有之?
class Queue:
def __init__(self, data=None):
# Initialize this queue, and store data if it exists
self.data = data
self.head = None
self.tail = None
self.node = None
self.length = 0
def enqueue(self, data):
if self.head == None:
self.head = Queue(data)
self.tail = self.head
else:
self.node = data
self.tail = self.node
data = self.data
self.length += 1
def dequeue(self):
item = self.head.item
self.head = self.head.next
self.length -= 1
return item
def __len__(self):
return self.length