图书目录

目录

基础篇

第1章Java语言回顾

1.1类

1.1.1类与对象

1.1.2类的扩展

1.1.3嵌套类

1.2接口

1.2.1接口的实现

1.2.2接口的扩展

1.2.3常用的接口

1.3异常处理和常用的异常类

1.4泛型

1.4.1泛型类

1.4.2参数化类及其成员

1.4.3泛型类的静态成员

1.4.4泛型接口和参数化接口

1.4.5泛型方法

1.4.6通配符、带通配符的参数化类型和捕获转型

1.4.7参数化类型之间的子类型/超类型关系

1.4.8类型擦除、Raw类型及其成员

1.4.9泛型的实现

1.4.10具体化(Reifiable)类型和new表达式的语法

1.5数组

1.5.1泛型无关的数组

1.5.2泛型相关的数组

1.6引用类型的转型

1.6.1宽化转型和窄化转型

1.6.2unchecked窄化转型

小结

习题

第2章算法与算法分析

2.1算法

2.2算法分析

2.2.1时间复杂度模型

2.2.2渐进时间复杂度分析

2.2.3空间复杂度模型及分析

2.3程序性能测量

小结

习题

第3章数据结构

3.1数据结构的基本概念

3.2数据结构的描述

3.3抽象数据类型及实现

小结

习题

数据结构篇

第4章线性表

4.1线性表的基本概念

4.2线性表的数组描述

4.3线性表的链式描述

4.3.1单向链表

4.3.2带头结点的单向链表

4.3.3单向循环链表

4.3.4双向链表

4.3.5链表的例题

4.4数组描述和链式描述的比较

小结

习题

第5章栈与队列 

5.1栈

5.1.1栈的数组描述

5.1.2栈的链式描述

5.2队列

5.2.1队列的数组描述

5.2.2队列的链式描述

5.3双端队列

5.3.1双端队列的数组描述

5.3.2双端队列的链式描述

小结

习题

第6章树与二叉树

6.1树

6.2二叉树

6.3二叉树的性质

6.4二叉树的实现

6.4.1二叉树的数组描述

6.4.2二叉树的链式描述

6.5二叉树的常用操作

6.5.1二叉树的遍历

6.5.2二叉树的其他常用操作

6.6树的遍历

6.7树的描述

小结

习题

综合运用篇

第7章查找

7.1基本概念

7.2静态查找

7.3动态查找

7.4二叉搜索树

7.4.1二叉搜索树的操作

7.4.2二叉搜索树的实现

7.4.3二叉搜索树的性能分析

7.5AVL树

7.6红黑树

7.6.1自底向上的平衡操作

7.6.2自顶向下的平衡操作

7.7B树

7.8哈希表

7.8.1哈希函数及冲突检测

7.8.2基于分离链的哈希表的实现

小结

习题

第8章优先级队列

8.1基本概念

8.2堆

8.3优先级队列的实现

8.4最优二叉树

8.4.1哈夫曼算法

8.4.2哈夫曼算法的实现

8.4.3哈夫曼编码的实现

8.5偶堆

小结

习题

第9章排序

9.1基本概念

9.2直接插入排序

9.3快速排序

9.3.1单枢轴快速排序

9.3.2双枢轴快速排序

9.4堆排序

9.5归并排序

9.5.1直接归并排序

9.5.2自然归并排序

9.6基数排序

9.7计数排序

小结

习题

第10章图

10.1图的基本概念

10.2图的描述

10.2.1邻接矩阵

10.2.2邻接表

10.3图的实现

10.3.1基于邻接矩阵的有向图的实现

10.3.2基于邻接表的有向图的实现

10.3.3基于邻接矩阵的带权有向图的实现

10.3.4基于邻接表的带权有向图的实现

10.3.5基于邻接矩阵的无向图的实现

10.4图的搜索与应用

10.4.1广度优先搜索

10.4.2深度优先搜索

10.4.3连通图及其连通分量

10.4.4边数最少的路径

10.4.5简单路径

10.4.6拓扑排序

10.5最短路径

10.5.1BellmanFord算法

10.5.2支持decrease操作的优先级队列

10.5.3Dijkstra算法

10.6最小生成树

10.6.1Prim算法

10.6.2不相交集合

10.6.3Kruskal算法

10.7图的其他描述

10.7.1十字链表

10.7.2邻接多重表

小结

习题

参考文献