目 录第1章 数据结构概论 11.1 什么是数据结构 11.2 数据结构的发展史及其在计算机科学中的地位 51.3 基本概念和术语 61.4 抽象数据类型和数据结构 71.5 学习数据结构的意义 91.6 Java语言概述 111.6.1 面向对象的程序设计 111.6.2 变量和对象 111.6.3 流程控制 131.6.4 类和修饰符 141.7 算法 141.7.1 算法及其性质 141.7.2 算法描述的分析 15思考和练习 19第2章 线性表 222.1 线性表类型的定义 222.2 线性表的顺序表示和实现 242.3 线性表的链式存储结构 282.3.1 单向链表 282.3.2 单链表的基本运算 312.3.3 循环链表 362.3.4 双链表 372.4 链表应用举例 412.5 顺序表和链表的比较 48思考和练习 48第3章 栈和队列 523.1 栈 523.1.1 栈定义及基本概念 523.1.2 顺序栈 543.1.3 链式栈 563.1.4 顺序栈和链式栈的比较 573.1.5 栈的应用举例 583.2 队列 663.2.1 队列定义及基本概念 663.2.2 顺序队列 673.2.3 链式队列 703.2.4 队列的应用 71思考和练习 76第4章 数组和广义表 804.1 多维数组 804.1.1 数组定义 804.1.2 数组的存储 814.1.3 显示二维数组的内容 824.2 矩阵的存储 834.2.1 矩阵的压缩存储 834.2.2 稀疏矩阵转换为三元组存储 864.3 广义表 904.3.1 广义表的定义 904.3.2 广义表的存储 91思考和练习 92第5章 树 955.1 树的概念 955.1.1 树的定义 955.1.2 基本术语 975.2 二叉树的定义 985.3 二叉树的性质 995.3.1 二叉树性质 995.3.2 二叉树的抽象数据类型 1025.4 二叉树的存储结构 1035.4.1 二叉树的顺序存储结构 1035.4.2 二叉树的链接存储结构 1045.4.3 二叉树的实现举例 1055.5 二叉树的遍历 1105.5.1 二叉树的前序遍历 1115.5.2 二叉树的中序遍历 1125.5.3 二叉树的后序遍历 1125.5.4 二叉树的层次遍历 1135.6 线索二叉树 1145.6.1 二叉树的线索化 1145.6.2 线索二叉树上的运算 1165.7 树和二叉树的转换及树的存储结构 1185.7.1 树转换为二叉树 1195.7.2 二叉树还原为树 1205.7.3 森林转换为二叉树 1215.7.4 树的遍历 1215.7.5 森林的遍历 1225.7.6 树的存储结构 1235.8 哈夫曼树及其应用 1245.8.1 哈夫曼树的基本概念 1255.8.2 哈夫曼树在编码问题中的应用 126思考和练习 128第6章 图 1316.1 图的基本概念 1316.1.1 图的定义 1316.1.2 常用术语 1326.2 图的存储结构 1356.2.1 邻接矩阵表示法 1356.2.2 邻接表表示法 1366.2.3 关联矩阵 1386.3 图的遍历 1386.3.1 深度优先搜索遍历 1386.3.2 广度优先搜索遍历 1416.4 最小生成树 1426.4.1 生成树 1436.4.2 最小生成树的生成 1446.5 最短路径和拓扑排序 1476.5.1 最短路径 1486.5.2 拓扑排序 151思考和练习 153第7章 排序 1567.1 概述 1567.1.1 排序的基本概念 1567.1.2 排序的稳定性 1577.1.3 排序的分类 1577.1.4 排序算法分析 1587.2 插入排序 1587.2.1 直接插入排序 1587.2.2 希尔排序 1617.3 交换排序 1647.3.1 冒泡排序 1647.3.2 快速排序 1687.4 选择排序 1727.4.1 直接选择排序 1727.4.2 堆排序 1757.5 归并排序 1787.6 外部排序 1817.6.1 辅助存储器的存取 1817.6.2 外部排序的方法 1837.7 各种内排序方法的比较和选择 185思考和练习 186第8章 查找 1878.1 基本概念 1878.2 线性表查找 1888.2.1 顺序查找 1888.2.2 二分查找 1908.2.3 分块查找 1948.3 二叉排序树 1948.4 B树 1998.5 散列技术 205思考和练习 213第9章 动态存储管理 2149.1 概述 2149.2 内存分配与回收策略 2159.3 可利用空间的分配方法 2169.4 存储紧缩 221思考和练习 222第10章 文件管理 22310.1 文件的基本概念 22310.1.1 文件定义 22310.1.2 文件逻辑结构及操作 22410.2 文件的分类 22510.2.1 顺序文件 22510.2.2 索引文件 22610.2.3 直接存取文件(散列文件) 22910.2.4 多关键字文件 22910.3 文件的存储 23110.3.1 磁盘 23110.3.2 磁带 232思考和练习 233参考文献 234