概述:
1.和数组一样,链表也是一种数据存储结构
2.链表这种数据存储结构的java实现
3.链表的种类
-
- 单链表
- 双端链表
- 有序链表
- 双向链表
- 有迭代器的链表(迭代器是用来随机访问链表元素的一种方法)
4.不同类型链表的java实现(综述)
-
- 概述:
- 不同类型的链表,其java实现略有不同。但是所有类型的链表都是由class XxxLink(节点类)、class LinkList(链表类)这两种类共同实现的。
- 关于class XxxLink:
- 类成员变量
- 基本类型类成员变量
- 类类型成员变量
- XxxLink next; //一定要有一个这样的成员变量,用于存储下一个节点 的地址
- 类成员变量的访问权限设置成public或者缺省(缺省状态下类成员变 量的访问范围为该包)
- 构造函数
- 显式的变量初始化语句
- 隐式的变量初始化语句(当没有相应的显式的初始化语句时,类成员变 量会自动被赋值成系统默认的值,如类类型的变量next就会被自动赋 值成null)
- 成员函数
- 一般只有displayLink(),用于输出节点内容
- 关于 class LinkList:
- 类成员变量
- 一般只有XxxLink firstLink; //存放链表第一个节点对象(链表头部)的地址
- XxxLink lastLink;
- 这两个成员变量(或只有其中的一个)
- 构造函数
- 将类成员变量firstLink赋值为null (可缺省该语句)
- 成员方法
- insertFirst()
- deleteFirst()
- deleteLinkByKey()
- findLink(String key)
- isEmpty()
- displayList()等等
2.1单链表的java实现
2.2双端链表的java实现
P152
2.3有序链表的java实现

2.4双向链表的java实现
P175
3.链表的应用
3.1单链表实现stack
P157
3.2双端链表实现队列(调用链表类的insertLast()和deleteFirst()函数)
P160
3.2使用有序链表实现有序数组
P169
4.链表的“迭代器类”(方便与在linkList类之外的类中遍历链表,如main函数中遍历链表,操作链表中各个节点)
4.1概述:链表的“迭代器类”的用处
1)链表的迭代器类中的成员方法和链表类的成员方法有一定的重合,至于哪些函数应该放在迭代器类,哪些函数因该放在链表类中,至今任然没有人给出确切的标准,要依据实际需求来规划链表类和链表的迭代器类。

2)链表的迭代器类的使用场地主要在:main函数中,或者除了XxxLink、XxxLinkList类之外的类中。
4.2链表的迭代器类的java实现
1)链表的迭代器类的成员方法通常有:

2)链表的迭代器类的java实现思路
首先,要在XxxLinkList类中实现getIterator()函数
其次,要编写XxxLinkListIterator类
P184
5.两种数据存储结构:链表和数组的异同点

6.小结







7.遗留问题
P193编程作业
数据结构与算法----->数据结构----->链表
原文:http://www.cnblogs.com/lxrm/p/6440196.html