
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2.2 链表的定义
链表是由链表节点构成的,因此在定义链表结构之前,先要定义链表的节点类型。链表节点可以用Java语言描述如下。

类Node包含两个成员变量:data为整型的变量,是该链表节点的数据域,可用来存放一个整数;next是Node类型的变量(引用类型变量),是该链表节点的指针域,用来指向下一个节点。
定义完链表节点类Node,接下来我们可以定义链表类。链表是靠节点间的指针相互关联的,只要获取了链表头就可以通过头指针遍历整个链表。在一个链表类中没有必要包含该链表的所有节点,只需要定义一个head成员就足够了。操作链表的函数可根据需要而定,常见的函数包括向链表的指定位置插入一个节点、从链表的指定位置删除一个节点等,大家可以自行定义。下面给出用Java语言定义的链表类。

MyLinkedList是定义的链表类,在这个类中包含两个成员变量:head是Node类型的成员,它是链表中第1个节点的引用,也就是指向第1个节点的指针;length是整型变量,用来记录数组中元素的数量。同时定义了两个成员函数用来对链表进行操作:函数insertNode(int data,int index)表示在链表的第index个位置上插入一个整型变量data节点;函数deleteNode(int index)表示删除链表中第index个位置上的节点。我们会在后面的章节中介绍这些函数的实现。