时间复杂度与算法分析 |
数据结构及抽象数据类型定义;
算法、算法复杂度定义;
常用的C编译器及操作演示; |
掌握数据结构的概念;
掌握抽象数据类型的概念;
了解算法复杂度及衡量; |
实验上机 |
通过实例演示让学生深刻理解不同的数据结构和算法的时间复杂性不同;能够完成实验上机题1 |
数据存储基础及
流程控制基础 |
数据存储方法;
数据组织的基本实现;
数据结构操作实现;
数组、指针、结构、链表、类型定义 |
理解如何利用程序设计语言实现抽象类型;
掌握数据存储方式;
掌握模块化程序设计实现方法;
掌握数据存储基础(C语言) |
实验上机 |
结合数据结构概念和C语言的知识进行讲授,并采用C编译器进行演示。这些内容是已经学过,要求所必需掌握的,虽然简单,但是非常重要。让学生多加练习。
能够完成上机题1-6 |
分支控制;
循环控制;
函数与递归; |
掌握程序控制方法;
掌握三大流程控制方法; |
实验上机 |
线性表的定义与实现 |
线性数据结构的定义及实例;
线性表的定义及实现;
线性表的顺序存储实现;
线性表的链表存储实现;
广义表与多重链表的定义及实现; |
掌握线性结构的存储方式;
掌握顺序存储与链表存储的区别;
了解C语言程序设计实现线性表元素的增加和删除实现 |
期末考试 |
通过网络教学平台、教学微课及板书绘制流程帮助数据结构学习初始阶段理解线性结构之线性表;考试题1正确 |
堆栈 |
堆栈的定义;
堆栈的实现;
堆栈应用:表达式求值;
|
掌握堆栈线性结构的特点;
理解堆栈的入栈、出栈的“先进后出”的特点;
掌握堆栈基本操作实现; |
期末考试 |
通过微视频讲解大量的堆栈实现的案例,以帮助理解堆栈的原理;通过源码及演示工具帮助理解堆栈操作实现;考试题2正确 |
队列 |
队列的定义及抽象数据类型;
队列的顺序存储实现、链式存储实现;
多项式加法运算 |
掌握队列线性结构的特点;
理解队列“先进先出”、“一端进另一端出”的特点;
掌握队列的基本操作实现; |
期末考试 |
通过演示工具及微视频讲解迷宫问题,帮助理解数据结构队列的特征及操作实现. 考试题3正确 |
树 |
问题引出;
静态查找的概念;
顺序查找、二分查找;
树的定义、二叉树的定义、存储结构;
二叉树的遍历; |
掌握线性和非线性结构的本质特征区别;
掌握二叉树的定义与存储结构;
掌握二叉树的遍历 |
期末考试 |
通过情景案例提出树这一独特的数据结构;
通过表达式树的构造帮助理解表达式在内存中的存放;
通过板书绘制理解二叉树的遍历;
考试题4正确 |
二叉搜索树的定义;
二叉搜索树的动态查找;
二叉搜索树的插入、删除 |
掌握二叉搜索树的特征;
掌握二叉搜索树的插入和删除实现 |
期末考试 |
动态演示分析帮助学生理解二叉树的查找、插入、删除;
编译器操作演示二叉树插入删除实现.
考试题5正确 |
二叉搜索树查找的时间复杂度、平均查找长度ASL;
平衡二叉树的定义;
平衡二叉树的调整及实现;
哈弗曼树的定义及构造;
哈弗曼编码; |
掌握ASL的计算方法;
掌握平衡二叉树的建立;
掌握平衡二叉树的调整;
理解平衡二叉树的实现方法;
掌握掌握哈弗曼树的建立;
掌握哈弗曼编码 |
期末考试 |
引入案例帮助学生理解二叉搜索树的查找时间复杂度,从而导入平衡二叉树的学习;
动态演示和板书绘制结合的方法帮助学生理解平衡二叉树的调整;
编译器源码演示和演示工具相结合方式帮助理解平衡二叉树的调整实现;
考试题5正确 |
散列查找 |
散列查找的基本概念;
散列函数的构造方法;
|
掌握散列查找的构造方法;
掌握直接定址法;
掌握除留余数法;
掌握数字分析法; |
期末考试 |
通过PPT讲授散列函数构造,帮助理解散列查找及散列函数构造;
通过演示软件演示散列查找冲突及处理方法;
板书讲解性能分析;
考试题5正确 |
散列查找冲突处理方法;
散列查找案例及应用; |
掌握开放地址法;
掌握分离链接法;
理解散列表性能 |
期末考试 |
图 |
图的基本概念;
图的抽象数据类型;
图的存储结构及编码实现; |
掌握图的邻接矩阵存储方法;
掌握图的邻接表的存储方法;
掌握图的存储代码实现; |
期末考试 |
通过实例引入帮助理解数据结构中非线性结构图的数据组织及存储结构;
考试题6正确 |
图的遍历;
图的深度优先搜索;
图的广度优先搜索;
最小生成树; |
掌握图的遍历方法;
理解图的深度及广度优先搜索的区别;
掌握最小生成树的构造方法; |
期末考试 |
通过演示软件帮助学生理解深度优先搜索和广度优先搜索的区别;
考试题7正确 |
图的最短路径的定义;
单源最短路径;
每一对顶点之间的最短路径; |
掌握单源最短路径的求解方法;
了解最短路径算法的编码实现 |
期末考试 |
通过实践案例来帮助学生理解图的最短路径及其求解方法
考试题7正确 |
关键路径;
拓扑排序; |
掌握关键路径求取方法;
掌握拓扑排序理论及方法;
掌握AOE和AOV网络; |
期末考试 |
通过排课案例来讲解拓扑排序;
通过案例讲解AOE和AOV网络; |
排序 |
排序的时间复杂度;
选择排序的原理;
选择排序的实现;
选择排序的时间复杂度 |
了解排序的定义及其时间复杂度;
掌握选择排序的基本原理,能够手工选择排序;
掌握选择排序的编码实现; |
期末考试 |
实际案例引入排序,重点讲授排序的应用广泛性;
演示软件及编译器代码实现各种排序,帮助学生理解排序的原理、实现及实现复杂度
考试题8正确 |
插入排序的原理、实现;
交换排序的原理、实现;
归并排序的原理、实现; |
掌握插入排序、交换排序和归并排序的基本原理,能够手工排序;
掌握排序的编码实现; |
期末考试 |
基数排序的原理、实现;
外部排序的定义及原理;
各种排序方法的比较; |
掌握基数排序的基本原理,能够手工排序;
理解内部排序和外部排序的区别;
掌握各种排序时间复杂度的优劣性及适用范围 |
期末考试 |
上机实验 |
简单计算器 |
掌握循环、输入处理、switch控制语句 |
实验上机 |
通过小组划分提前进行任务划分,实验课程进行检验及修正,通过分组实践方法提供学生数据结构与算法实践能力;
能够分小组完成实验上机题1-6,调试无错误,并且显示结果正确 |
数组元素循环右移 |
掌握循环、数组、宏定义 |
实验上机 |
递增链表的插入 |
掌握循环、链表 |
实验上机 |
用扑克牌计算24点 |
掌握嵌套循环、二维数组 |
实验上机 |
海盗分赃 |
熟练掌握循环控制语句的使用;
熟练掌握数组存储的方法;
掌握反向递推的思路思考解决问题的方法 |
实验上机 |
两个有序序列的中位数 |
掌握循环、二分查找 |
实验上机 |