機能的な (プログラミングに非常に慣れていないため、必ずしも最適に効率的であるとは限りません) 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: Queue インスタンスに属性 'front' がありません」というエラーが表示されます。私の関数がキューの新しいフロントを適切に割り当てていないと思いますか? 私はそれを修正する方法がわかりません。
私はゼロから始めたいとは思っていないので、自分のコードにうまくいくような微調整があれば、それを望んでいます。私は、クラスやそのようなものの感覚をつかむだけで、ランタイムを最小限にしようとはしていません。自然。
助けてくれてありがとう。