第1章 绪论 1
1.1数据结构的概念 1
数据结构与分类 1
数据的逻辑结构和基本操作 2
数据的存储结构及其操作 2
1.2算法与算法分析 2
算法 2
算法设计 3
算法分析 3
1.3面向对象软件开发概念 4
1.4封装 6
封装的概念 6
使用类和对象 7
1.5继承 9
继承的概念 9
使用继承定义新的类 10
1.6多态 11
多态的概念 11
利用多态性 12
1.7描述面向对象设计的工具—UML简介 13
静态结构图 13
1.8本书希望达到的目标 14
1.9本书的构成 15
1.10本书学习方法 15
第2章 线性表(顺序表) 16
2.1线性表的概念及其表示 16
线性表的定义 16
线性表的基本操作 17
用面向对象的方法表达线性表 18
2.2顺序存储结构线性表的概念 19
2.3顺序存储的线性表的Java实现 20
顺序表存储实现 20
顺序表基本操作的实现 20
顺序存储线性表的有关算法分析 29
2.4应用举例 29
2.5顺序存储结构线性表排序 35
排序的概念 35
线性表排序功能的面向对象实现方法 36
插入排序 38
冒泡排序 40
快速排序 41
归并排序 43
2.6顺序结构线性表的查找 46
顺序查找 47
折半查找 47
分块查找 50
第3章 链表 53
3.1链式存储结构线性表的概念 53
3.2链式存储的线性表的Java实现 54
链表的存储实现 54
链表基本操作的实现 55
链式存储线性表的有关算法分析 66
3.3应用举例 67
3.4链式存储结构线性表排序 72
插入排序 73
3.5查找 76
顺序查找 76
哈希表及其应用 77
3.6双向链表、循环链表 84
双向链表 84
循环链表 89
第4章 栈 98
4.1栈的概念 98
栈的定义 98
栈的主要应用 99
栈的主要操作 101
用面向对象的方法表达栈 101
4.2栈的顺序线性表构成 104
Java类表示 104
顺序栈的实现 105
应用举例 106
4.3栈的链式线性表构成 108
链栈的实现 108
应用举例 110
4.4Java经典程序阅读 113
第5章 队列 120
5.1队列的概念 120
队列的定义 120
队列的主要应用 121
队列的主要操作 122
用面向对象的方法表达队列 122
5.2队列的顺序线性表构成 125
Java类表示 125
顺序表中队列的实现 125
应用举例 128
5.3队列的链式线性表构成 130
链表中队列的实现 130
应用举例 132
5.4Java经典程序阅读 136
第6章 矩阵与广义表 139
6.1矩阵的定义和操作 139
6.2矩阵的Java类实现 141
矩阵接口(Matrix)的.实现 141
普通矩阵类的实现 141
矩阵基本操作的实现 141
6.3矩阵的压缩存储 149
6.4特殊矩阵的压缩存储 149
定义和应用 149
对角矩阵的压缩存储 150
三对角矩阵的压缩存储 151
三角矩阵 152
对称矩阵 152
6.5稀疏矩阵及其存储结构 152
稀疏矩阵概念 152
三元组存储方法 152
链式存储 158
6.6广义表 165
广义表的概念 165
广义表的操作 166
第7章 树 170
7.1树的概念 170
树的定义和术语 170
树的主要应用 173
二叉树的概念和性质 175
用面向对象的方法表达二叉树 178
7.2二叉树的Java类实现 180
Java类表示 180
二叉树的遍历 185
二叉树的生成 190
二叉排序树 201
树与二叉树的转换 205
应用举例 207
线索二叉树 210
哈夫曼树 218
第8章 图 224
8.1图的概念和基本知识 224
图的定义 224
图的主要操作 227
用Java类表示图 228
8.2图的存储结构 229
邻接矩阵表示法 229
邻接表表示法 231
8.3图的遍历 234
深度优先遍历 234
广度优先遍历 237
图的遍历应用举例 242
参考文献 249