AttributeError: 'Queue' object has no attribute 'size'
とエラーが出ました。http://www.geocities.jp/m_hiroi/light/pyalgo02.html
を参考にしてリンクリストを実装しました。
# -*- coding: utf-8 -*- class Queue: # セルの定義 def enqueue(self, x): if self.size == 0: self.rear = Queue.Cell(x) self.rear.next = self.rear # 循環リスト else: new_cell = Queue.Cell(x, self.rear.next) self.rear.next = new_cell self.rear = new_cell self.size += 1 def dequeue(self): if self.size == 0: raise IndexError front = self.rear.next self.rear.next = front.next self.size -= 1 if self.size == 0: self.rear = None return front.data def rotate(self, n=1): if self.size == 0 or n < 1: raise IndexError while n > 0: self.rear = self.rear.next n -= 1 class Cell: def __init__(self, x, y = None): self.data = x self.next = y # 初期化 def __init__(self): self.size = 0 self.rear = None # 簡単なテスト if __name__ == '__main__': q = Queue() #print(q.isEmpty()) for x in range(5): q.enqueue(x) print(q) q.rotate() print(q.peek()) q.rotate() print(q.peek()) q.rotate() print(q.peek()) q.rotate() print(q.peek()) q.rotate() print(q.peek()) while not q.isEmpty(): print(q.dequeue()), print(q) print(q)
とコードを書いて実行すると
上記のエラーが出ました。
class Queue の中にclass Cell がありそのclass Cellの中に
self.size = 0
と書いたので、class Queue からでもアクセスできると思ったのですが、間違ってますか?
どう直せば良いのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。