第1章绪论
1.1数据结构的基本概念
1.1.1抽象数据类型与数据结构
1.1.2数据的逻辑结构
1.1.3数据的存储结构
1.1.4数据的操作
1.2算法与算法设计
1.2.1算法
1.2.2算法设计
1.2.3算法分析
习题1
实习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.4.1向链表的概念
2.4.2向链表的节点类
2.4.3向链表类的设计与实现
2.4.4向循环链表的概念
习题2
实习2
第3章排序
3.1排序的基本概念
3.2插入排序
3.2.1顺序表的直接插入排序
3.2.2单链表的直接插入排序
3.2.3希尔排序
3.3交换排序
3.3.1冒泡排序
3.3.2改进的冒泡排序
3.3.3快速排序
3.4选择排序
3.4.1顺序表的直接选择排序
3.4.2单链表的直接选择排序
3.5归并排序
3.5.1顺序表的归并排序
3.5.2单链表的归并排序
习题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.2.4对子串的操作
4.3串的模式匹配算法
4.3.1Brute-Force算法
4.3.2替换子串操作
习题4
实习4
第5章栈和队列
5.1栈
5.1.1栈的定义
5.1.2栈的抽象数据类型
5.1.3顺序栈类
5.1.4链式栈类
5.1.5栈的应用
5.2队列
5.2.1队列的定义
5.2.2队列的抽象数据类型
5.2.3队列的存储结构
5.2.4顺序循环队列类
5.2.5链式队列类
5.2.6队列的应用
5.3递归
习题5
实习5
第6章数组和广义表
6.1数组
6.1.1一维数组
6.1.2多维数组
6.2矩阵类
6.2.1矩阵类的声明
6.2.2矩阵类的操作
6.3特殊矩阵的压缩存储
6.4稀疏矩阵
6.4.1稀疏矩阵的三元组线性表
6.4.2三元组顺序表类
6.4.3三元组链表
6.5广义表·
6.5.1广义表的概念
6.5.2广义表的存储结构
习题6
实习6
第7章初树和二叉树
7.1树
7.1.1树的定义
7.1.2树的术语
7.1.3树的表示方法
7.2叉树
7.2.1叉树的定义
7.2.2二叉树的性质.
7.2.3叉树的抽象数据类型
7.2.4二叉树的遍历
7.2.5叉树的存储结构
7.2.6树与二叉树的转换
7.3二叉树类
7.3.1叉树的节点类
7.3.2二叉树类的设计与实现
7.3.3建立二叉树的算法设计
7.3.4二叉树遍历的非递归算法
7.3.5二叉树的层次遍历
7.4线索二叉树
7.4.1线索二叉树的定义
7.4.2线索二叉树的节点类
7.4.3中序线索二叉树类
7.5堆排序
习题7
实习7
第8章查找
8.1查找的基本概念
8.2线性表的查找
8.2.111匝序查找
8.2,2折半查找
8.2.3分块查找
8.3二叉排序树及其查找算法
8.4哈希查找
8.4.1哈希表的基本概念
8.4.2设计哈希函数
8.4.3解决冲突的方法
8.4.4拉链法的哈希表类
习题8
实习8
第9章图
9.1图的基本知识
9.1.1图的定义
9.1.2节点的度
9.1.3子图
9.1.4路径、回路及连通性
9.1.5图的抽像数据类型
9.2图的存储结构
9.2.1邻接矩阵
9.2.2邻接表
9.3图的遍历
9.3.1深度优先遍历
9.3.2广度优先遍历
9.4邻接矩阵图类
9.5最小生成树
9.5.1树与图
9。5.2生成树
9.5.3最小生成树及其构造算法
9.6最短路径
习题9
实习9
第10章综合应用设计
10.1用“预见算法”解骑士游历问题
10.2综合应用实习
参考文献