Python 带节点的链表。可迭代的
Python Linked List with Nodes. Iterable
我需要一些帮助来为我的 UnorderedList()
class 编写 __iter__()
方法。我试过这个:
def __iter__(self):
current = self
while current != None:
yield current
但是 while
循环并没有停止。这是我剩下的 classes 和代码:
class Node:
def __init__(self,initdata):
self.data = initdata
self.next = None
def getData(self):
return self.data
def getNext(self):
return self.next
def setData(self,newdata):
self.data = newdata
def setNext(self,newnext):
self.next = newnext
class UnorderedList:
def __init__(self):
self.head = None
self.count = 0
如果你想成功地迭代所有项目,你应该这样做
def __iter__(self):
# Remember, self is our UnorderedList.
# In order to get to the first Node, we must do
current = self.head
# and then, until we have reached the end:
while current is not None:
yield current
# in order to get from one Node to the next one:
current = current.next
让你每一步都更进一步。
顺便说一句,setter 和 getter 未在 Python 中以方法的形式使用。如果您需要它们,请使用属性,否则完全忽略它们。
那就这样吧
class Node(object):
def __init__(self, initdata):
self.data = initdata
self.next = None
class UnorderedList(object):
def __init__(self):
self.head = None
self.count = 0
def __iter__(self):
current = self.head
while current is not None:
yield current
current = current.next
我需要一些帮助来为我的 UnorderedList()
class 编写 __iter__()
方法。我试过这个:
def __iter__(self):
current = self
while current != None:
yield current
但是 while
循环并没有停止。这是我剩下的 classes 和代码:
class Node:
def __init__(self,initdata):
self.data = initdata
self.next = None
def getData(self):
return self.data
def getNext(self):
return self.next
def setData(self,newdata):
self.data = newdata
def setNext(self,newnext):
self.next = newnext
class UnorderedList:
def __init__(self):
self.head = None
self.count = 0
如果你想成功地迭代所有项目,你应该这样做
def __iter__(self):
# Remember, self is our UnorderedList.
# In order to get to the first Node, we must do
current = self.head
# and then, until we have reached the end:
while current is not None:
yield current
# in order to get from one Node to the next one:
current = current.next
让你每一步都更进一步。
顺便说一句,setter 和 getter 未在 Python 中以方法的形式使用。如果您需要它们,请使用属性,否则完全忽略它们。
那就这样吧
class Node(object):
def __init__(self, initdata):
self.data = initdata
self.next = None
class UnorderedList(object):
def __init__(self):
self.head = None
self.count = 0
def __iter__(self):
current = self.head
while current is not None:
yield current
current = current.next