目录 基础篇 第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邻接多重表 小结 习题 参考文献