如何解决为什么在链表中为头节点创建一个不同的类?
我对数据结构不熟悉,只是从链表开始。我了解整个代码,但我不明白为什么
llist.head
是Linkedlist类的属性,该属性成为Node
类的对象。在后面的示例中,为什么我们要进行此分配llist.head = node(1)
?
class Node:
def __init__(self,data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
if __name__=='__main__':
llist = LinkedList()
llist.head = Node(1)
second = Node(2)
third = Node(3)
llist.head.next = second
second.next = third
解决方法
您有一个代表节点的类和一个代表列表的类。
但是您也可以考虑每个节点代表一个(子)列表的起点。因此,如果更适合您,则可以取消代表列表的类:
ref.orderByChild("Date").startAt("2020-09-01").endAt("2020-09-03")
,
将其他对象作为类的属性很常见!
(特别是在Python中,将类的 all 属性视为对象是有意义的。数字可能是Integer对象,名称是String对象……而LinkedList具有Node对象。唯一的区别是您自己创建了该类,而不是使用内置的类!)
为Node和LinkedList使用单独的类在面向对象方法中非常有意义。它们是非常不同的东西,具有某种相关性,比如说公交线路和公交车站。公交线路有第一,第二和第三站,等等。这些站本身有上一个和下一个站。
顺便说一句:LinkedList的优点之一就是您不必命名每个节点。您只需要知道它的开始位置-从那里开始,您只需要遵循单个节点的next
元素即可遍历列表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。