第1章 绪论
1. 1 什么是数据结构
1. 1. 1 数据结构的定义
1. 1. 2 数据结构类型
1. 1. 3 数据结构和数据类型
1. 2 算法及其描述
1. 2. 1 什么是算法
1. 2. 2 算法描述
1. 3 算法分析
1. 3. 1 算法的性能标准
1. 3. 2 时间复杂度
1. 4 本章小结
习题1
第2章 线性表
2. 1 线性表及其逻辑结构
2. 1. 1 线性表的定义
2. 1. 2 线性表的操作
2. 2 线性表的顺序存储
2. 2. 1 线性表的顺序存储--顺序表
2. 2. 2 顺序表基本操作的实现
2. 2. 3 顺序表的应用举例
2. 3 线性表的链式存储
2. 3. 1 线性表的链式存储--链表
2. 3. 2 单链表基本操作的实现
2. 3. 3 双链表
2. 3. 4 循环链表
2. 3. 5 单链表的应用举例
2. 4 本章小结
习题2
第3章 栈和队列
3. 1 栈
3. 1. 1 栈的定义
3. 1. 2 栈的顺序存储及其基本操作
3. 1. 3 栈的链式存储及其基本操作的实现
3. 1. 4 栈的应用举例
3. 2 队列
3. 2. 1 队列的定义
3. 2. 2 队列的顺序存储及其基本操作的实现
3. 2. 3 队列的链式存储及其基本操作的实现
3. 2. 4 队列的应用举例
3. 3 本章小结
习题3
第4章 串和数组
4. 1 串
4. 1. 1 串的定义
4. 1. 2 串的顺序存储及其基本操作实现
4. 1. 3 串的链式存储及其基本操作实现
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章 树和二又树
5. 1 树
5. 1. 1 树的定义
5. 1. 2 树的表示
5. 1. 3 树的基本术语
5. 2 二叉树及其遍历
5. 2. 1 二叉树的定义
5. 2. 2 二叉树的基本操作
5. 2. 3 二叉树的重要性质
5. 2. 4 二叉树的存储结构
5. 2. 5 二叉树的遍历
5. 2. 6 二叉树的基本操作
5. 2. 7 二叉树与森林之间的转换
5. 3 二叉排序树
5. 3. 1 二叉排序树的定义
5. 3. 2 二叉排序树的基本操作
5. 4 哈夫曼树
5. 4. 1 哈夫曼树的定义
5. 4. 2 构造哈夫曼树
5. 4. 3 哈夫曼编码
5. 5 本章小结
习题5
第6章 图
6. 1 图的基本概念
6. 1. 1 图的定义
6. 1. 2 图的基本术语
6. 2 图的存储结构
6. 2. 1邻接矩阵
6. 2. 2 邻接表
6. 3 图的遍历
6. 3. 1 深度优先搜索
6. 3. 2 宽度优先搜索
6. 4 最小生成树
6. 4. 1 普里姆算法
6. 4. 2 克鲁斯卡尔算法
6. 5 最短路径
6. 5. 1 单源最短路径
6. 5. 2 每对顶点之间的最短路径
6. 6 本章小结
习题6
第7章 排序
7. 1 插入排序
7. 1. 1 直接插入排序
7. 1. 2 希尔排序
7. 2 选择排序
7. 3 交换排序
7. 3. 1 冒泡排序
7. 3. 2 快速排序
7. 4 归并排序
7. 5 本章小结
习题7
第8章 查找
8. 1 顺序查找
8. 2 二分查找
8. 3 分块查找
8. 4 哈希表查找
8. 4. 1 哈希表查找的基本概念
8. 4. 2 构造哈希函数的方法
8. 4. 3 哈希冲突解决方法
8. 5 本章小结
习题8
实习题
实习1 链表的应用--求两个一元多项式之和
1. 目的
2. 要求
3. 解题算法
4. 实验程序
5. 实验结果
实习2 栈的应用--判断一个数是否是回文数
1. 目的
2. 要求
3. 解题算法
4. 实验程序
5. 实验结果
实习3 串的应用--求两个串的最长公共子串
1. 目的
2. 要求
3. 解题算法
4. 实验程序
5. 实验结果
实习4 二叉树的应用--设计一个表示家谱的二叉树
1. 目的
2. 要求
3. 解题算法
4. 实验程序
5. 实验结果
实习5 快速排序的设计
1. 目的
2. 要求
3. 解题算法
4. 实验程序
5. 实验结果
实习6 哈希表查找设计
1. 目的
2. 要求
3. 解题算法
4. 实验程序
5. 实验结果
附录A 习题参考答案
习题1
习题2
习题3
习题4
习题5
习题6
习题7
习题8
附录B 递归设计方法
B. 1 递归模型
B. 2 递归的执行过程
B. 3 递归设计
B. 4 递归到非递归的转换
附录C C程序的功能索引
参考文献