def enque(self,data):
if (self.end==self.msize-1 & self.front==0):
print('Q is full')
elif self.front==-1:
self.front=0
self.end=0
self.q[self.end]=data
检查self.q
的长度(即len(self.q))
(,我想你会看到长度是0
.为了在列表中有一个0
索引(即self.q[0]
(,您希望看到self.q
长度为 1。由于列表没有索引0
,因此不能写入值。
不要指定不直接存在的索引位置值,而是尝试将该值append
到列表中。
def enque(self,data):
if (self.end==self.msize-1 & self.front==0):
print('Q is full')
elif self.front==-1:
self.front=0
self.end=0
#self.q[self.end]=data
self.q.append(data)
请注意,append
将始终将数据放在列表的末尾。如果self.q
已经有一些其他值,则追加不会导致数据被放置在索引 0 中。
如果要始终将其放在索引 0(如果存在(或创建索引 0(如果不存在(,则可以执行以下操作:
if self.q: # only non-empty list will pass
self.q[self.end] = data
else: # empty list
self.q.append(data)