我正在学习数据结构,最近我偶然发现了一本从头开始实现链表的书。
class ListNode{
private ListNode next;
}
代码的确切含义及其作用。
答案 0 :(得分:0)
这意味着class ListNode
的对象会有一个名为private
的{{1}}成员(在课堂外无法访问)会告诉它下一个next
链表。
这显然是一种托管语言(可能是java或C#),而类对象是对包含实际对象的内存的引用。如果你在哪里学习非托管语言,你可能不会对此感到困惑,因为私有成员接下来就是指针类型。
由于成员对象ListNode
只是对具有类定义中描述的布局的内存的引用,因此类型定义没有像您想象的那样自我递归。
创建next
时ListNode
应为next
。当它被放入列表中之前,元素中的null
将被设置为此next
,而此ListNode
中的next
将被设置为下一个元素清单(如果有的话)。
所以ListNode
有效地指向了内存,其中已经创建了另一个next
,其中包含了它应具有的数据。 ListNode
的实际数据必须放在其他成员变量中。通用的只有一个ListNode
成员,可以保留一个通用对象。
希望这有帮助!