我是一名 C++ 程序员。最近开始使用 Python。我正在查看 Python 中的简单链表实现。我在这里有点困惑。不仅在这里,而且在 Tree 实现等中也存在同样的问题。
class Element 包含数据和指向下一个节点的指针。完美没问题。但是在 LinkedList 类中我可以看到 self.tail.next=e,现在 next 是 Element 类的变量,即使它是公共的,但 Element 类的对象也必须访问它。在这里,我们如何编写 self.tail.next = e 之类的东西,因为 tail 只是 LinkedList 类的变量,而不是 Element 类的对象。我很困惑。
class Element:
def __init__(self,x):
self.data=x
self.next=None
class LinkedList:
def __init__(self):
self.head=None
self.tail=None
def append(self,x):
# create a new Element
e = Element(x)
# special case: list is empty
if self.head==None:
self.head=e
self.tail=e
else:
# keep head the same
self.tail.next=e
self.tail=e