0
作爲一個相對較新的Python程序員,我最近試圖通過使用類和子類來模擬入隊和出隊。目前,看了我的代碼加在執行試圖讀取:使用子類的Python入隊和出隊仿真
class queue:
class node:
def __init__(self, value, nextNode):
self.value = value
self.nextNode = nextNode
def __init__(self):
self.top = None
self.last = None
self.size = 0
def __len__(self):
return self.size
def enqueue(self, value):
#This creates an extra node with "value" and inserts at the top
newNode=queue.node(value,None)
if self.size ==0:
self.top=newNode
self.last=self.top
self.size+=1
else:
self.last.nextNode=newNode
self.last=newNode
self.size+=1
def dequeue(self):
#This returns self.top.value and at the same time deletes the top
node.
if self.size ==0:
return "error: dequeue from an empty queue"
elif self.size == 1:
val=self.top.value
nxt=self.top.nextNode
self.top=None
self.last=None
else:
val=self.top.value
nxt=self.top.nextNode
self.top=nxt
return val
q = queue()
q.enqueue(1)
q.enqueue(2)
q.enqueue(3)
q.enqueue(4)
x=q.dequeue()
output = []
while len(q)>0:
x = q.dequeue()
output.append(x)
print(output)
#This should show [2, 3, 4]
從我能理解,我的主要問題是作爲返回值目前我得到:
AttributeError的:「NoneType」對象有沒有屬性'值'
當我嘗試運行。如果有人能夠澄清問題所在,那將不勝感激。
哇,不能相信我錯過了。我在出場陳述中投入了一個self.size- = 1,果然它就像一個魅力!感謝您指出了這一點! –
邁克爾沒問題。儘管一切都很好。我只用了兩條線,就像我身邊的一個魅力一樣。 – Kyle