0
我試圖完成循環陣列支持隊列的最後一種方法。我被困在調整大小的方法。任何幫助或指針表示讚賞。環形陣列支持的隊列調整大小/排隊
def resize(self, newsize):
assert(len(self.data) < newsize)
new = Queue(newsize)
for x in range(len(self.data)):
new[x] == self.data[x]
self.data = new
錯誤我得到的是:
<ipython-input-31-d458e1ceda34> in <module>()
19
20 for i in range(9, 14):
---> 21 q.enqueue(i)
22
23 for i in range(4, 14):
<ipython-input-28-0e6c7038d634> in enqueue(self, val)
9
10 def enqueue(self, val):
---> 11 if self.head == (self.tail + 1) % len(self.data):
12 raise RuntimeError
13 elif self.head == -1 and self.tail == -1:
TypeError: object of type 'Queue' has no len()
我的排隊方法是這樣的,給我任何錯誤別處:
def enqueue(self, val):
if self.head == (self.tail + 1) % len(self.data):
raise RuntimeError
elif self.head == -1 and self.tail == -1:
self.head = 0
self.tail = 0
self.data[self.tail] = val
else:
self.tail = (self.tail + 1) % len(self.data)
self.data[self.tail] = val