第1章绪论
1.1数据结构的产生和发展
1.2什么是数据结构
1.3基本术语
1.4算法和算法的描述
1.4.1算法
1.4.2算法的描述
1.4.3算法分析
习题一
第2章线性表和数组
2.1线性表及其基本运算
2.2线性表的顺序存储结构
2.3线性表的链式存储结构--单链表
2.3.1单链表
2.3.2单链表的运算
2.3.3循环链表
2.4线性表的链式存储结构--双向链表
2.5多项式相加
2.6栈
2.6.1栈的定义及其运算
2.6.2栈的顺序存储结构
2.6.3多栈共享邻接空间
2.6.4栈的链式存储结构
2.7算术表达式求值
2.8队列
2.8.1队列的定义及其运算
2.8.2队列的链式存储结构
2.8.3队列的顺序存储结构
2.8.4其他队列
2.9数组和数组的顺序存储结构
2.9.1数组
2.9.2数组的顺序存储结构
2.10矩阵的压缩存储
2.10.1特殊矩阵的压缩存储
2.10.2稀疏矩阵的压缩存储
习题二
第3章串
3.1串的基本概念
3.2串的存储结构
3.2.1串值的存储
3.2.2串名的存储映象
3.3串的基本运算及其实现
3.3.1串的基本运算
3.3.2串的基本运算的实现
3.4文本编辑
习题三
第4章树
4.1树的概念与存储表示
4.1.1树的基本概念
4.1.2树的存储表示
4.2二叉树
4.2.1二叉树的概念
4.2.2二叉树的性质
4.2.3二叉树的存储表示
4.3遍历二叉树
4.3.1前序遍历
4.3.2中序遍历
4.3.3后序遍历
4.4线索二叉树
4.5树.森林与二叉树的转换及遍历
4.5.1树的二叉树表示
4.5.2森林与二叉树的转换
4.5.3树.森林的遍历
4.6哈夫曼(Huffman)树及其应用
4.6.1路径长度
4.6.2哈夫曼树
4.6.3哈夫曼码
习题四
第5章图
5.1基本术语
5.1.1图
5.1.2顶点的度
5.1.3子图
5.1.4完全图
5.1.5路径和回路
5.1.6连通图与连通分量
5.1.7树图
5.1.8网络
5.2图的存储表示
5.2.1邻接矩阵
5.2.2户接表
5.3图的遍历与求图的连通分量
5.3.1深度优先搜索法
5.3.2宽度优先搜索法
5.3.3求图的连通分量
5.4生成树和最小(代价)生成树
5.4.1无向连通图的生成树
5.4.2网络的最小(代价)生成树
5.4.3最小生成树问题的解法
5.5最短路径
5.5.1单源最短路径问题
5.5.2每对顶点间的最短路径问题
5.6拓扑排序和最长路径
5.6.1拓扑排序
5.6.2关键路径
习题五
第6章查找
6.1基本概念
6.2顺序查找
6.2.1数组的顺序查找
6.2.2线性链表顺序查找
6.3有序数组的查找
6.3.1二分查找
6.3.2线性插值查找
6.3.3分区查找
6.4二叉排序树查找
6.4.1二叉排序树的查找算法
6.4.2二叉排序树的结点插入算法
6.4.3二叉排序树的结点删除算法
6.4.4二叉排序树查找算法分析
6.5哈希查找
6.5.1哈希函数与哈希表
6.5.2构造哈希函数的常用方法
6.5.3冲突处理
习题六
第7章排序
7.1什么是排序
7.2内部排序
7.2.1冒泡排序
7.2.2选择排序
7.2.3插入排序
7.2.4归并排序
7.2.5堆排序
7.2.6快速排序
7.2.7基数排序
7.3存储设备
7.3.1磁带
7.3.2磁盘
7.4外部排序
7.4.1磁带归并排序
7.4.2初始归并段的产生
7.4.3磁盘排序
7.4.4最佳归并树
习题七
第8章文件
8.1文件的基本概念
8.2顺序文件
8.3索引文件
8.4索引顺序文件
8.5直接存取文件
8.6链接文件和多重链表文件
8.7倒排文件
习题八
习题答案
参考文献