首页 > 代码库 > 数据结构(二)链表的实现

数据结构(二)链表的实现

链表定义:(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有前驱但是无后缀。接下来开始操作链表。

 

二:操作链表