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
答案 0 :(得分:0)
检查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)