作为练习,我想创建自己的节点/列表类。无论如何,我不明白如何添加节点列表...这是我的代码:
class Node:
def __init__(self, value):
self.element = value
self.nextEl = None
def getEl(self):
return self.element
def getNext():
return self.nextEl
class List:
def __init__(self, fnode):
self.firstNode = fnode
def add(self, newNode):
def printList(self):
temp = self.firstNode
while (temp != None):
print temp.element
temp = temp.nextEl
答案 0 :(得分:6)
您需要找到没有.nextEl
指针的最后一个节点,并在那里添加节点:
def add(self, newNode):
node = self.firstNode
while node.nextEl is not None:
node = next.nextEl
node.nextEl = newNode
因为这必须遍历整个列表,所以大多数链表实现还保留对最后一个元素的引用:
class List(object):
first = last = None
def __init__(self, fnode):
self.add(fnode)
def add(self, newNode):
if self.first is None:
self.first = self.last = newNode
else:
self.last.nextEl = self.last = newNode
由于Python从左到右分配给多个目标,self.last.nextEl
在newNode
之前设置为self.last
。
代码的一些样式注释:
is None
和is not None
来测试标识符是否指向None
(它是单身)。除非这是Python 3,否则通过继承object
来使用新式类:
class Node(object):
# ...