我已經使用自制的類節點定義了一個類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