链表定义:(java版)一种递归的数据结构,他或者为空,或者是指向一个节点的引用,该节点含有一个泛型的元素和指向另一个链表的引用。在这个定义中,节点是一个可能含有任意数据类型的抽象实体,这也是为什么使用泛型来表示的原因。
一:链表构造,节点概述
我们可以使用Node来表示一个结点:
private class Node{ Item item;//泛型类型 Node next;//执行下一个节点的引用 }
有必要说明参数item和next的含义:
Item:泛型参数,它就好比一个占位符,表示我们希望链表处理的任意类型的数据。
Node:该类型的实例变量显示了这种数据结构的链式的本质。
比如,如果first是一个指向某个node对象的变量,我们可以使用first.item first.next来访问它的实例变量。这种类型的类也被成为记录。声明:如下将使用术语链接来表示对节点的引用。
二:定义链表结构
根据定义,其实我们只需要一个node类型的变量就能表示链表。比如我们要构造一个含有元素to be or的链表,首先来构造节点:
Node first = new Node();
Node second = new Node();
Node third = new Node();
为每个节点item域设为所需的值,假设item所对应的泛型类型是String
first.item="to";
second.item = "be"
third.item="or"
然后通过引用指向的方式来设置next域构造链表的结构:
first.next=secoud;
second.next=thrid;
图示结构:
说明:长方形表示对象,实例变量的值写在长方形中,指向被引用对象的箭头表示引用关系
至此,一个包含三个节点的简单链表就实现完成,其中first无前驱但是有一个后缀,secoud包含前驱和后缀,thrid有前驱但是无后缀。接下来开始操作链表。
二:操作链表
数据结构(二)链表的实现