前言
数据结构课程翻转课堂的改革这是第2轮了。
在这一年多时间来,国内对翻转课堂由观望、争论,到目前更多的认可,这是大势所趋。我们已经进入到了信息化时代,工业时代的教学模式是要改了。
对于数据结构课程,在2014级实施时,资源建设任务基本完成,这为教师节约了大量的精力。有了这样的条件,保障同学们的课前自学效果,改善课堂教学活动,这是要和2015级的同学们一起努力去做的。改革的工作就是这样,随着深入,原先没有机会碰的问题就会出来,要解决的问题由表及里,逐渐汇集,直至达成我们的目标。
2015级的教学工作,继续使用蓝墨云班课作为主要教学平台,而在这个课程主页中,主要为课后的实践服务。提供每一周课程内容对应的源代码,课后的实践方案、参考解答等材料,为同学有效地将算法与代码联系在一起提供帮助。
让我们师生一起,为保障我们的学习效果一起努力!
参考:数据结构课程主页-2014级
期末学生总结链接集:链接…
学生名单及链接
计156-1
任家锋 孟 晔 李 欣 林志文 陈光辉 陈鹏鹏 滕 健
李 潇 王修文 王力源 周国亮 陈 哲 陈 晨 杨天瑞
姜孝龙 高金艳 王 婧 董 雪 陈 迪 衣龙川 杨雅鑫
彭友程 胡馨月 郗小艺 刘光辉 泮春宇 姜延锴 王晓慧
孟琪琪 梁 凯 田 艺 黄玉娇 秦绪龙 于苏显 王 鹏
陈 朋 武 昊 路亚丽 王 曼 李良涵 程德泉 李晓钰
何大冰
计156-2
孙子晴 刘富家 陈梦雪 张相如 车金阳 陈晓琳 吕方舟
常 锐 陈 飞 车佳颖 张 冰 白晓娟 王雪松 宋雨静
申鹏鹏 林 颖 孟令群 刘 倩 房 斐 张雯婧 刘春彤
张晓彤 谷建龙 孟令康 郝环宇 杨俊杰 邹晓琳 孙子策
苏 泽 魏铭阳 王靖淇 朱建豪 边 朔 肖博文 隋溢凡
孙丽玮 李 玲 刘小楠 马 赛 王译敏 臧新晓 孙启先
王智超 郗传秀
课程资源
第1周 学习改革准备活动
第2周 数据结构概述
1. 关于数据结构课程 16:49
2. 什么是数据结构 13:15
3. 数据的逻辑结构及类型 19:29
4. 抽象数据类型 14:13
5. 算法及其描述 17:08
6. 算法复杂度概念 22:15
7. 算法分析实例 12:16 【补充例题】
8. 算法与数据结构 14:56
课后上机实践:第2周 数据结构、算法、程序设计
第3周 线性表(1)——顺序表
- 导学 0:00
- 线性表的逻辑结构与基本运算 21:25
- 线性表的顺序存储结构 8:50
- 创建线性表的实现(暨参数类型的讨论) 18:40 [ 例程]
- 顺序表基本运算的实现 18:48 [算法库] [补充案例:找Bug]
- 线性表顺序存储的应用 17:31 [例程]
- 实践指导:用程序实践算法 15:30 [例程] [文字版]
课后上机实践及参考:第3周 线性表(一)——顺序存储结构
第4周 线性表(2)——链表
8.线性表的链式存储 12:19
9. 建立单链表 16:30 [例程]
10. 单链表基本操作的实现 18:59 [算法库]
11. 单链表应用举例 24:12 [例程]
12. 双链表 19:36 [算法库]
13. 循环链表 6:23 [算法库: 循环单链表] [算法库: 循环双链表]
14. 线性表的应用 27:10 [例程]
15. 有序表 15:13 [例程]
课后上机实践及参考:第4周 线性表(二)——链表
[拓展:C++标准模板库与数据结构]
翻转课堂4周后同学们如何看?点这儿看就知道了。
第5周 栈和队列(1)——栈
1. “栈和队列”导学 9:23
2. 栈的定义 9:56
3. 栈的顺序存储结构及其基本运算实现 14:15 [算法库]
4. 栈的链式存储结构及其基本运算的实现 6:39 [算法库]
5. 栈的应用1-表达式求值 31:23 [例程]
6. 栈的应用2-迷宫问题 19:48 [例程]
课后上机实践及参考:第6周 栈和队列(一)——栈
补充应用案例:栈结构用于8皇后问题的回溯求解
第7周 栈和队列(2)——队列
7. 队列的定义 5:46
8. 顺序队的存储及基本操作 12:24
9. 环形队列的存储及基本操作 21:00 [算法库]
10. 队列的链式存储结构及其基本运算的实现 17:07 [算法库]
11. 队列的应用-迷宫问题 21:39 [例程]
12. 双端队列 5:04
课后上机实践及参考:第7周 栈和队列(二)——队列
第8周 串
1. 串的基本概念及导学 11:09 [自测]
2. 串的顺序存储及其基本操作实现 26:09 [算法库]
3. 串的顺序存储应用 12:53 [例程]
4. 串的链式存储及其基本操作实现 21:58 [算法库] [自测]
5. 串的模式匹配(Brute-Force算法) 16:15 [例程]
6. 串的模式匹配(KMP算法) 33:20 [例程] [自测]
课后上机实践及参考:第8周 串
第9周 数组与广义表
1. 数组的基本概念与存储结构 22:06 [自测]
2. 特殊矩阵的压缩存储 31:56 [例程] [自测]
3. 稀疏矩阵的三元组表示 26:41 [算法库] [自测]
4. 稀疏矩阵的十字链表表示 28:33 [例程]
5. 广义表 13:58 [自测]
6. 广义表的存储结构及基本运算的实现 30:40 [算法库]
课后上机实践及参考:第9周 数组与广义表
第10周 树和二叉树(1)
1 树结构导学 6:19
2 树的基本概念 18:04
3 树的基本术语 7:41
4 树的性质 14:59
5 树的存储结构 13:33 [例程]
6 二叉树概念和性质 18:02
7 二叉树与树、森林之间的转换 12:13
8 二叉树的存储结构 9:21
9 二叉树的基本运算及其实现 29:18 [算法库]
10 二叉树的遍历 18:42 [例程(算法)] [例程(应用)]
课后上机实践及参考:第10周 树和二叉树(一)
第11周 树和二叉树(2)
11 二叉树遍历非递归算法 23:04 [例程]
12 层次遍历算法 10:05 [例程] [例程(应用)]
13 二叉树的构造 24:23 [例程]
14 线索二叉树 21:41 [例程]
15 哈夫曼树 29:24 [例程]
课后上机实践及参考:第11周 树和二叉树(二)
第12周 图(1)
1. 图结构导学 12:16
2. 图的定义 7:34
3. 图的基本术语 21:22
4. 图的邻接矩阵存储结构及算法 16:55 [例程]
5. 图的邻接表存储结构及算法 22:52 [算法库]
6. 图的遍历 24:05 [例程]
7. 非连通图的遍历 7:55 [例程]
8. DFS(深度优先搜索)的应用 21:27 [例程]
9. BFS(广度优先搜索)的应用 12:12 [例程]
课后上机实践及参考:第12周 图的基本运算和遍历
第13周 图(2)
10.生成树的概念 13:10
11.最小生成树的普里姆算 26:36 [例程]
12.最小生成树的克鲁斯卡尔算法 18:16[例程]
13.从一个顶点到其余各顶点的最短路径 34:15 [例程]
14.每对顶点之间的最短路径 22:15[例程]
15.拓扑排序 15:39[例程]
16.AOE网与关键路径 19:15
课后上机实践及参考:第13周 最短路径和拓扑序列
第14周 查找(1)
1.查找问题导学 13:31
2.线性表的顺序查找 7:52 [例程]
3.线性表的折半查找 20:05 [例程]
4.索引存储结构 5:26
5.分块查找 20:32 [例程]
6.二叉排序树 22:58
7.二叉排序树(续) 12:03 [例程]
8.平衡二叉树 32:56 [例程]
课后上机实践及参考:第14周 查找(一)
第15周 查找(2)和内部排序(1)
9. B-树 29:01
10. B+树 5:491
11. 哈希表——散列结构 29:38
12. 哈希表的运算 27:40 [例程]
课后上机实践及参考: 第15周 查找(2)
课后上机实践及参考: 第15周 内部排序(1) (并入16周部分)
第16周 内部排序(二)
4. 交换排序之冒泡排序 16:22 [例程]
5. 交换排序之快速排序 20:13 [例程]
6. 选择排序之直接选择排序 10:06 [例程]
7. 选择排序之堆排序 22:18 [例程] [补充示例]
8. 归并排序 18:08 [例程]
9. 简单的计数排序 8:33 [例程]
10. 基数排序 20:06 [例程]
11. 各种排序的比较 8:39
课后上机实践及参考: 第16周 内部排序 (含15周内部排序部分)