![f2252469-6913-eb11-8da9-e4434bdf6706.jpeg](http://p01.5ceimg.com/content/f2252469-6913-eb11-8da9-e4434bdf6706.jpeg)
三、授课课时安排(48学时)
知识单元 | 涵盖知识点情况* | 知识点学时 | 小计 |
1、绪论 | 1.1 什么是数据结构 1.2 算法及其描述 | 1 | 2 |
1.3 算法分析: ①算法时间复杂度分析;②算法空间复杂度分析 | 1 | ||
2、线性表 | 2.1 线性表的定义 2.2 线性表的顺序存储结构: ①顺序表以及线性表基本运算算法在顺序表中的实现;②顺序表的应用算法设计示例 | 2 | 6 |
2.3 线性表的链式存储结构: ①单链表以及线性表基本运算算法在单链表中的实现;②单链表的应用算法设计示例;③双链表以及线性表基本运算算法在双链表中的实现;④双链表的应用算法设计示例;⑤循环链表 | 2 | ||
2.4 顺序表和链表的比较 2.5 线性表的应用: 求解两个多项式相加问题 | 2 | ||
3、栈和队列 | 3.1 栈: ①栈的定义;②顺序栈及其实现;③顺序栈的应用算法设计示例;④链栈及其实现;⑤链栈的应用算法设计示例 | 2 | 6 |
⑦栈的综合应用(用栈求解简单表达式求值问题,用栈求解迷宫问题) | 1 | ||
3.2 队列: ①队列的定义;②顺序队及其实现;③顺序队的应用算法设计示例;④链队及其实现;⑤链队的应用算法设计示例 | 2 | ||
⑦队列的综合应用(用队列求解迷宫问题) | 1 | ||
4、串 | 4.1 串的基本概念 4.2 串的存储结构—顺序串和链串 | 1 | 2 |
4.4串的模式匹配: ①BF算法;②KMP算法 | 1 | ||
5、递归 | 5.1 什么是递归 ①递归的定义;②何时使用递归;③递归模型;④递归的执行过程;⑤递归算法的时空分析 | 1 | 2 |
5.2 递归算法的设计: ①递归算法设计的步骤;②基于递归数据结构的递归算法设计;③基于归纳方法的递归算法设计 | 1 | ||
6、数组和稀疏矩阵 | 6.1 数组: ①数组的基本概念;②数组的存储结构 6.2 特殊矩阵的压缩存储: ①对称矩阵的压缩存储;②三角矩阵的压缩存储;③对角矩阵的压缩存储 6.3 稀疏矩阵: ①稀疏矩阵的三元组表示;②稀疏矩阵的十字链表表示 | 2 | 2 |
7、树和二叉树 | 7.1 树: ①树的定义和逻辑表示;②树的基本术语;③树的性质;④树的基本运算;⑤树的存储结构 | 1 | 7 |
7.2 二叉树: ①二叉树的概念;②二叉树的性质;③二叉树存储结构;④二叉树的递归算法设计;⑤二叉树的基本运算及其实现 | 2 | ||
7.3 二叉树先序、中序和后序遍历: ①二叉树遍历的概念;②先序、中序和后序遍历递归算法;③递归遍历算法的应用 | 1 | ||
7.4 二叉树的层次遍历: ①层次遍历过程;②层次遍历算法设计;③层次遍历算法的应用 | 1 | ||
7.5 二叉树的构造 7.6 线索二叉树 | 1 | ||
7.7 哈夫曼树 7.8 二叉树与树、森林之间的转换 | 1 | ||
8、图 | 8.1 图的基本概念 8.2 图的存储结构: ①邻接矩阵;②邻接表 | 1 | 7 |
8.3 图的遍历: ①图遍历的概念;②深度优先遍历;③广度优先遍历;④非连通图的遍历;⑤图遍历算法的应用 | 2 | ||
8.4 生成树和最小生成树: ①生成树和最小生成树的概念;②普里姆算法;③克鲁斯卡尔算法 | 1.5 | ||
8.5 最短路径: ①最短路径的概念;②狄克斯特拉算法;③弗洛伊德算法 | 1.5 | ||
8.6 拓扑排序 8.7 AOE网与关键路径 | 1 | ||
9、查找 | 9.1 查找的基本概念 9.2 线性表的查找: ①顺序查找;②折半查找;③索引存储结构和分块查找 | 2 | 7 |
9.3 树表的查找: ①二叉排序树;②平衡二叉树;③B-树和B+树 | 3 | ||
9.4 哈希表查找: ①哈希表的基本概念;②哈希函数构造方法;③哈希冲突解决方法;④哈希表查找及性能分析 | 2 | ||
10、排序 | 10.1 排序的基本概念 10.2 插入排序: ①直接插入排序;②折半插入排序;③希尔排序 | 2 | 6 |
10.3 交换排序: ①冒泡排序;②快速排序 | 1 | ||
10.4 选择排序: ①简单选择排序;②堆排序 | 1 | ||
10.5 归并排序: ①自底向上的二路归并排序;②自顶向下的二路归并排序 10.6 基数排序 10.7 各种内排序方法的比较和选择 | 2 | ||
11、复习 | 课程知识点归纳和总结 | 1 | 1 |
*教材中所有带"*"的内容均为提高知识点,不作为课堂讲授内容以减少课堂学时。
四、上机课时安排(16课时)
知识单元 | 实验内容 | 学时 |
1、线性表 | 上机实验题** | 3 |
2、栈和队列 | 上机实验题 | 3 |
3、树和二叉树 | 上机实验题 | 3 |
4、图 | 上机实验题 | 3 |
5、查找和排序 | 上机实验题 | 4 |
**上机实验题均来自于教材,教师可以根据学生的情况选择相应的题目。
五、授课课时安排(60学时)
知识单元 | 涵盖知识点情况* | 知识点学时 | 小计 |
1、绪论 | 1.1 什么是数据结构 1.2 算法及其描述 | 1 | 3 |
1.3 算法分析: ①算法时间复杂度分析;②算法空间复杂度分析 | 1 | ||
1.4 数据结构的目标 | 1 | ||
2、线性表 | 2.1 线性表的定义 2.2 线性表的顺序存储结构: ①顺序表以及线性表基本运算算法在顺序表中的实现;②顺序表的应用算法设计示例;③ArrayList顺序表容器 | 3 | 8 |
2.3 线性表的链式存储结构: ①单链表以及线性表基本运算算法在单链表中的实现;②单链表的应用算法设计示例;③双链表以及线性表基本运算算法在双链表中的实现;④双链表的应用算法设计示例;⑤循环链表;⑥LinkedList链表容器及其应用 | 3 | ||
2.4 顺序表和链表的比较 2.5 线性表的应用: 求解两个多项式相加问题 | 2 | ||
3、栈和队列 | 3.1 栈: ①栈的定义;②顺序栈及其实现;③顺序栈的应用算法设计示例;④链栈及其实现;⑤链栈的应用算法设计示例;⑥Java中的栈容器Stack | 2 | 6 |
⑦栈的综合应用(用栈求解简单表达式求值问题,用栈求解迷宫问题) | 1 | ||
3.2 队列: ①队列的定义;②顺序队及其实现;③顺序队的应用算法设计示例;④链队及其实现;⑤链队的应用算法设计示例;⑥Java中的队列接口Queue | 2 | ||
⑦队列的综合应用(用队列求解迷宫问题) | 1 | ||
4、串 | 4.1 串的基本概念 4.2 串的存储结构—顺序串和链串 4.3 Java中的字符串 | 1 | 3 |
4.4串的模式匹配: ①BF算法;②KMP算法 | 2 | ||
5、递归 | 5.1 什么是递归: ①递归的定义;②何时使用递归;③递归模型;④递归的执行过程;⑤递归算法的时空分析 | 1 | 3 |
5.2 递归算法的设计: ①递归算法设计的步骤;②基于递归数据结构的递归算法设计;③基于归纳方法的递归算法设计 | 2 | ||
6、数组和稀疏矩阵 | 6.1 数组: ①数组的基本概念;②数组的存储结构;③Java中的数组;④数组的应用 | 1 | 3 |
6.2 特殊矩阵的压缩存储: ①对称矩阵的压缩存储;②三角矩阵的压缩存储;③对角矩阵的压缩存储 | 1 | ||
6.3 稀疏矩阵: ①稀疏矩阵的三元组表示;②稀疏矩阵的十字链表表示 | 1 | ||
7、树和二叉树 | 7.1 树: ①树的定义和逻辑表示;②树的基本术语;③树的性质;④树的基本运算;⑤树的存储结构 | 1 | 9 |
7.2 二叉树: ①二叉树的概念;②二叉树的性质;③二叉树存储结构;④二叉树的递归算法设计;⑤二叉树的基本运算及其实现 | 2 | ||
7.3 二叉树先序、中序和后序遍历: ①二叉树遍历的概念;②先序、中序和后序遍历递归算法;③递归遍历算法的应用;④先序、中序和后序遍历非递归算法 | 2 | ||
7.4 二叉树的层次遍历: ①层次遍历过程;②层次遍历算法设计;③层次遍历算法的应用 | 1 | ||
7.5 二叉树的构造 7.6 线索二叉树 | 1 | ||
7.7 哈夫曼树 7.8 二叉树与树、森林之间的转换 | 1 | ||
7.9 树算法设计和并查集 | 1 | ||
8、图 | 8.1 图的基本概念 8.2 图的存储结构: ①邻接矩阵;②邻接表 | 1 | 8 |
8.3 图的遍历: ①图遍历的概念;②深度优先遍历;③广度优先遍历;④非连通图的遍历;⑤图遍历算法的应用 | 2.5 | ||
8.4 生成树和最小生成树: ①生成树和最小生成树的概念;②普里姆算法;③克鲁斯卡尔算法 | 1.5 | ||
8.5 最短路径: ①最短路径的概念;②狄克斯特拉算法;③弗洛伊德算法 | 1.5 | ||
8.6 拓扑排序 8.7 AOE网与关键路径 | 1.5 | ||
9、查找 | 9.1 查找的基本概念 9.2 线性表的查找: ①顺序查找;②折半查找;③索引存储结构和分块查找 | 2 | 7 |
9.3 树表的查找: ①二叉排序树;②平衡二叉树;③Java中的TreeMap和TreeSet集合;④B-树和B+树 | 3 | ||
9.4 哈希表查找: ①哈希表的基本概念;②哈希函数构造方法;③哈希冲突解决方法;④哈希表查找及性能分析;⑤Java中的HashMap和HashSet集合 | 2 | ||
10、排序 | 10.1 排序的基本概念 10.2 插入排序: ①直接插入排序;②折半插入排序;③希尔排序 | 2 | 8 |
10.3 交换排序: ①冒泡排序;②快速排序 | 1 | ||
10.4 选择排序: ①简单选择排序;②堆排序 | 1 | ||
10.5 归并排序: ①自底向上的二路归并排序;②自顶向下的二路归并排序 10.6 基数排序 10.7 各种内排序方法的比较和选择 | 2 | ||
10.8 外排序: ①生成初始归并段的方法;②多路归并方法 | 2 | ||
复习 | 课程知识点归纳和总结 | 2 | 2 |
*教材中部分带"*"的内容作为提高知识点,不作为课堂讲授内容。
六、上机课时安排(20课时)
知识单元 | 实验内容 | 学时 |
1、线性表 | 上机实验题+在线编程题** | 3 |
2、栈和队列 | 上机实验题+在线编程题 | 3 |
3、串 | 上机实验题+在线编程题 | 2 |
4、树和二叉树 | 上机实验题+在线编程题 | 3 |
5、图 | 上机实验题+在线编程题 | 3 |
6、查找 | 上机实验题+在线编程题 | 3 |
7、排序 | 上机实验题+在线编程题 | 3 |
**上机实验题和在线编程题均来自于教材,教师可以根据学生的情况选择相应的题目。
七、教材及参考用书
扫码优惠购书
本书配套视频样例
本书系统地介绍了各种常用的数据结构以及查找和排序的各种算法,阐述了各种数据结构的逻辑关系、存储表示及基本运算,并采用Java语言描述数据组织和算法实现,所有算法的程序均在Java1.8中调试通过。 全书既注重原理又注重实践,配有大量图表和示例,内容丰富,概念讲解清楚,表达严谨,逻辑性强,语言精练,可读性好。书中提供了丰富的练习题、实验题和在线编程题,配套的《数据结构教程(Java)学习与实验指导》详细给出了本书练习题的解题思路和参考答案,以及在线编程题的AC代码。
本书配套资源(1000页PPT)
八、考核
(1)期末考试:期末考试形式为笔试,一般以闭卷方式进行。
(2)课程成绩评定方法:期末考试成绩、课后作业、上机实验(含实验报告)和其他。后三项所占成绩比例加起来不低于30%。
九、配套参考书
扫码,优惠购买数据结构考研宝典