线性表的链式存储结构,也称之为链式表,链表;链表的存储单元可以连续也可以不连续。
链表中的节点包含数据域和指针域,数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域。
注意一个头结点和头指针的区别:
头指针:
头结点:
这里先讲讲单链表吧,其他的后面再讲。
无头结点的链表
有头结点的链表
空链表

我试着用Java写了一个LinkedList的代码,如下:
节点类:
这里也讲讲数据元素的插入和删除操作;
插入操作演示如下:
代码:
这里摘了《大话数据结构》的一段文字解释:

删除操作如下图:

一句代码:
结合上述代码和图例,可以看出单链表的删除和插入操作都是由两部分组成:
下面是摘自《大话数据结构》的分析:

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

相对于头插法,尾插法更加合理一些。
单链表的整表删除
下面是摘自《大话数据结构》的分析:

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


