我正在寻找一个功能性(不一定是最佳效率,因为我对编程很陌生)FIFO队列,并且在我的出队时遇到了麻烦。
我的代码如下所示:
class QueueNode:
def __init__(self, data):
self.data = data
self.next = None
def __str__(self):
return str(self.data)
class Queue:
def __init__(self):
self.front = None
self.rear = None
self.size = 0
def enqueue(self, item):
newnode = QueueNode(item)
newnode.next = None
if self.size == 0:
self.front = self.rear = newnode
else:
self.rear = newnode
self.rear.next = newnode.next
self.size = self.size+1
def dequeue(self):
dequeued = self.front.data
del self.front
self.size = self.size-1
if self.size == 0:
self.rear = None
print self.front #for testing
如果我这样做,并将一个项目出队,我会收到错误“AttributeError:队列实例没有属性'front'。” 我猜我的函数没有正确分配队列的新前面?我不知道如何解决它。
我真的不想从头开始,所以如果对我的代码进行一些调整可以工作,我更愿意这样做——我并不想尽量减少运行时间,而只是想了解类和类似的东西自然。
提前感谢您的帮助。