gpt4 book ai didi

python - 我试图从 clrs 书中实现队列,但它没有按预期工作?我的代码有什么问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:16:12 25 4
gpt4 key购买 nike

我正在尝试从 clrs 书中实现队列,但它没有按预期工作。我的代码有什么问题?

会不会是队列大小或入队操作的问题?

但是,很明显队列上的入队操作没有按预期工作。这是我的代码:

class Queue:

def __init__(self,size):
self.queue=[None]*(size+1)
self.tail=1
self.head=1
self.size=size

def enqueue(self,item):
#error checking
if(self.isFull()):
print("queue overflows,queue full")
return
#--------------------
self.queue[self.tail]=item
if(self.tail==self.size):
self.tail=1
else:
self.tail=self.tail+1

def dequeue(self):

#error checking
if(self.isEmpty()):
print("queue underflows,queue empty")
return
#--------------------
x=self.queue[self.head]
if(self.head==self.size):
self.head=1
else:
self.head=self.head+1
return x

def isFull(self):
return (self.tail + 1)= self.head

def isEmpty(self):
return self.head==self.tail

def first_person(self):
if(self.isEmpty()):
return ("queue empty")
return self.queue[self.head]

最佳答案

能不能用“==”来比较,python中的“=”是用来赋值的。我假设 isFull 返回 bool 值 True 或 False,具体取决于队列的大小,而且我还认为它是使用循环队列实现的,因此检查 tail+1 == head。

def isFull(self): 
return (self.tail + 1)== self.head

关于python - 我试图从 clrs 书中实现队列,但它没有按预期工作?我的代码有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41637832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com