【发布时间】:2020-09-22 11:32:20
【问题描述】:
我正在尝试使用具有入队、出队和长度功能的链接实现来实现队列类。据我对队列的理解,当第一次实现时,队列指向最初指向无的头和尾节点。随着项目被添加到队列中,一个节点指向该项目,头节点保持不变,而尾节点指向新项目。
我尝试在 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
【问题讨论】:
-
self.head.item和self.head.next定义在哪里?另外,我认为您不需要在类方法中声明类的实例
标签: python queue deque enqueue