我对链接列表结构中的一件事情有点困难。 基本上,链接列表的节点是使用以下类创建的,下一个引用是通过方法getNext()获得的: 我省略了与我的问题无关的其他方法。
class Node:
def __init__(self,initdata):
self.data = initdata
self.next = None
def getNext(self):
return self.next
现在创建链表并尝试查找链表的大小时:
class UnorderedList:
def __init__(self):
self.head = None
def size(self):
current = self.head
count = 0
while current != None:
count = count + 1
current = current.getNext() <-----
return count
我不明白箭头所示的线条。我知道它试图遍历到下一个节点的逻辑,但getNext()是“NodeClass”的方法。它是如何(getNext()方法)被一个不是NodeClass对象的对象(即当前)使用的?实际上它是“UnorderedList”类的一个对象。
答案 0 :(得分:1)
current
基本上是UnOrderedList
的一个实例,其中每个元素都是Node
个对象。因此,Nodes
上应用的方法可以应用于current
的每个元素。使用add方法将节点添加到UnOrderedList
。
def add(self,item):
temp = Node(item)
temp.setNext(self.head)
self.head = temp