我已经使用自制的类节点定义了一个类Queue。我认为它按预期工作,但我不确定代码是否正确。大多数情况下,我很担心在队列为空时将self.first和self.last分配给p(新节点)。我的推理是,因为p将是唯一的节点,它将是第一个节点和最后一个节点,但这可能不是思考的Pythonic方式。我的代码是否合理?已连接的队列类
class Node:
def __init__(self):
self.value=0
self.next=None
class Queue:
def __init__(self):
self.first=None
self.last=None
def isempty(self):
return self.first==None
def put(self,x):
p=Node()
p.value=x
if self.first==None:
self.first=p
self.last=p
else:
self.last.next=p
self.last=p
def get(self):
if self.isempty():
print('Queue is empty!')
else:
x=self.first.value
self.first=self.first.next
return x
当您将第一个和最后一个节点分配为同一个节点时,基本上将其设置为循环队列。 – Muctadir
@Muctadir这就是我所害怕的。我应该将最后一个节点分配给什么? – Lozansky
和muctadir,那不正确。循环链接就像'self.first.next = self.first'。在同一个节点上同时拥有两个指针是完全正确的。 – Maresh