第1章 绪论1.1 数据结构的基本概念1.2 抽象数据类型和软件构造方法1.3 算法和算法的时间复杂度1.3.1 算法1.3.2 算法设计的目标1.3.3 算法时间效率的度量1.4 算法设计1.5 算法书写规范1.6 本课程内容概述习题第2章 线性表2.1 线性表的抽象数据类型2.2 线性表的顺序表示和实现2.2.1 顺序表的存储结构2.2.2 顺序表的操作实现2.2.3 顺序表操作的效率分析2.2.4 顺序表的应用举例2.3 线性表的链式表示和实现2.3.1 单链表的存储结构2.3.2 单链表的操作实现2.3.3 单链表操作的效率分析2.3.4 单链表应用举例2.3.5 循环单链表2.3.6 双向链表2.4 设计举例2.5 本章小结习题二第3章 堆栈和队列3.1 堆栈3.1.1 堆栈和堆栈的抽象数据类型3.1.2 堆栈的顺序表示和实现3.1.3 堆栈的链式表示和实现*3.2 堆栈应用——表达式计算3.3 队列3.3.1 队列和队列抽象数据类型3.3.2 顺序队列3.3.3 顺序循环队列的表示和实现3.3.4 链式队列3.3.5 队列的应用*3.4 优先级队列3.4.1 顺序优先级队列的设计和实现3.4.2 优先级队列的应用3.5 本章小结习题三第4章 串4.1串4.1.1 串及其基本概念4.1.2 串的抽象数据类型4.1.3 C语言的串函数4.2 串的存储结构4.2.1 串的顺序存储结构4.2.2 串_的链式存储结构4.3 串基本操作的实现算法4、4 串的模式匹配算法4.4.1 Brute—Force算法4.4.2 KMP算法4.4.3 Brute-Force算法和KMP算法的比较4.5 本章小结习题四第5章 数组5.1 数组的实现机制5.2 动态数组的设计方法5.3 特殊矩阵的压缩存储5.4 稀疏矩阵的压缩存储5.4.1 稀疏矩阵的三元组顺序表5.4 一稀疏矩阵的三元组链表5.5 本章小结习题五第6章 递归6.1 递归的概念6.2 递归算法的执行过程6.3 递归算法的设计方法6.4 递归过程和运行时栈6.5 递归算法的效率分析*6.6 递归算法到非递归算法的转换6.7 设计举例6.7.1 一般递归算法设计举例*6.7.2 回溯法及设计举例6.8 本章小结习题六第7章 树和二叉树7.1 树7.1.1 树的定义7.1.2 树的表示方法7.1.3 树的抽象数据类型7.2 二叉树7.2.1 二叉树的定义7.2.2 二叉树抽象数据类型7.2.3 二叉树的性质7.3 二叉树的设计和实现7.3.1 二叉树的存储结构7.3.2 二叉链存储结构下二叉树的操作实现7.3.3 二叉树的遍历及其实现:7.4 线索二叉树7.5 哈夫曼树7.5.1 哈夫曼树的基本概念7.5.2 哈夫曼编码问题_*7.5.3 哈夫曼编码问题设计和实现7.6 树的存储结构、转换和遍历7.6.1 树的存储结构7.6.2 树与二叉树的转换7.6.3 树的遍历7.7 本章小结习题七第8章 图8.1 图的基本概念8.1.1 图的基本概念8.1.2 图的抽象数据类型8.2 图的设计和实现8.2.1 图的邻接矩阵存储结构8.2.2 图的邻接表存储结构8.2.3 邻接矩阵存储结构下图的操作实现8.3 图的遍历8.3.1 图的深度和广度优先遍历算法8.3.2 图的深度和广度优先遍历算法设计和实现8.4 最小生成树8.4.1 最小生成树的基本概念8.4.2 普里姆算法*8.4.3 普里姆函数设计和实现8.4.4 克鲁斯卡尔算法8.5 最短路径8.5.1 最短路径的基本概念8.5.2 从一个顶点到其余各顶点的最短路径*8.5.3 狄克斯特拉算法设计和实现8.6 本章小结习题八第9章 排序9.1 排序的基本概念9.2 插入排序9.2.1 直接插入排序9.2.2 希尔排序9.3 选择排序9.3.1 直接选择排序9.3.2 堆排序9.4 交换排序9.4.1 冒泡排序9.4.2 快速排序*9.5 归并排序9.6 综合应用举例9.7 本章小结习题九第10章 查找10.1 查找的基本概念10.2 静态查找表10.2.1 顺序表10.2.2 有序顺序表10.2.3 索引顺序表10.3 动态查找表10.3.1 二叉排序树10.3.2 B一树10.4 哈希表10.4.1 哈希表的基本概念10.4.2 哈希函数构造方法10.4.3 哈希冲突解决方法10.4.4 哈希表设计举例10.5本章小结习题十附录A 上机实习内容规范附录B 上机实习范例参考文献