Java数据结构-线性表之单链表LinkedList

2015-07-20 12:52:32 · 作者: · 浏览: 26

线性表的链式存储结构,也称之为链式表,链表;链表的存储单元可以连续也可以不连续
链表中的节点包含数据域和指针域,数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域。


注意一个头结点和头指针的区别:
头指针:


头结点:


这里先讲讲单链表吧,其他的后面再讲。
无头结点的链表

有头结点的链表

空链表


我试着用Java写了一个LinkedList的代码,如下:


节点类:


这里也讲讲数据元素的插入和删除操作;
插入操作演示如下:



代码:


这里摘了《大话数据结构》的一段文字解释:


删除操作如下图:


一句代码:


结合上述代码和图例,可以看出单链表的删除和插入操作都是由两部分组成:


下面是摘自《大话数据结构》的分析:


单链表的整表创建
方法有头插法和尾插法;
头插法:相当于插队的方法。如下图


相对于头插法,尾插法更加合理一些。


单链表的整表删除
下面是摘自《大话数据结构》的分析:


下面比较一下单链表和顺序表: