我想遍歷我的自定義類鏈接串列,有人可以幫我嗎,我在 web.xml 中找不到直截了當的方法。
問題是當我想遍歷鏈表時,它給了我一個錯誤,并說鏈表中沒有回圈。
__iter__我想用和__next__或其他一些更簡單的演算法使它可以迭代。
這是我的代碼的幾行:
class node:
def __init__(self, data=None):
self.data = data
self.next = None
class linkedList:
def __init__(self):
self.head = node()
self._len = 0
def add(value):
self._len = 1
newNode = node(value)
curNode = self.head
while curNode.next != None:
curNode = curNode.next
curNode.next = newNode
uj5u.com熱心網友回復:
首先:您的代碼不起作用:add缺少self引數。它應該被宣告為add(self, value).
要使您的類實體可迭代,請定義__iter__和使用回圈,就像您在add方法中使用的一樣,除了您不需要在while條件中向前看:
class linkedList:
def __init__(self):
self.head = node()
self._len = 0
def __iter__(self):
curNode = self.head.next # Skip head, as it is a dummy node
while curNode:
yield curNode.data
curNode = curNode.next
現在您可以使用實體可迭代的特性:
lst = linkedList()
lst.add(19)
lst.add(33)
print(*lst) # splash the values to print them
# or with a loop
for value in lst:
print(value)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/414416.html
標籤:
上一篇:在Swift中不使用sqrt生根
下一篇:for回圈中的變數
