授 课 计 划 说 明
①教材名称
数据结构(C语言版)严蔚敏,吴伟民编 北京:清华大学出版社
②本学期本课程教学目的、要求
教学目的:
通过学习本课程,学生在基础方面能掌握常用数据结构的基本概念及其不同的实现方法;并且在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会。
教学要求:
掌握数据、数据元素和数据项的概念及其相互间的关系;数据结构的逻辑结构、存储结构的联系与区别以及在数据结构上施加的运算及其实现。掌握线性表的定义及其运算。掌握栈和队列的定义、特征及在其上所定义的基本运算;掌握串的定义、存储方式和常用的串运算;多维数组的结构特点和在内存中的两种顺序存储方式,矩阵和三角矩阵元素的存储。掌握树的定义、性质及其存储方法;二叉树的二叉链表存储方式、结点结构和类型定义;二叉树的遍历算法;树、森林与二叉树间的相互转换;哈夫曼树的构造方法。掌握图的基本概念及术语;图的两种存储结构(邻接矩阵和邻接表)的表示方法;图的遍历(深度优先搜索遍历和广度优先搜索遍历)算法;最小生成树的构造;拓扑排序、关键路径以及最短路径算法。掌握查找的基本思想及查找成功和不成功的概念;在顺序表、有序表、索引表、散列表等上的查找方法和算法;二叉排序树、平衡二叉树以及B-树的概念和有关算法;散列表的构造。掌握排序的基本思想和基本概念;插入排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序及基数排序的基本思想、步骤及算法。
③提高教学质量和教学改革的主要措施
在教学中,明确教学目的与教学要求,突出教学重点与教学难点。要求学生熟练掌握教材,多做实验,通过练习C语言的语法规则及数据结构的常用算法,能够掌握一些较为复杂的算法,并初步积累编程经验,自己解决一些程序课题。
教学进度安排表
| 周次 |
课程教学进度安排
|
学时 |
课时累计 |
1 |
1.1数据结构的发展简史 1.2什么是数据结构 1.3算法和算法的描述(2学时) 2.1线性表的概念及运算 2.2线性表的顺序存储(2学时) |
4 |
4 |
2 |
2.3线性表的链式存储(2学时) 2.4循环链表和双向链表(2学时) |
4 |
8 |
3 |
2.5应用举例(2学时) 3.1栈 3.2栈的应用(2学时) |
4 |
12 |
4 |
3.3队列(2学时) 3.4队列的应用(2学时) |
4 |
16 |
5 |
4.1串及其运算 4.2串的存储结构(2学时) 4.3串运算的实现(2学时) |
4 |
20 |
6 |
4.4矩阵的压缩存储 4.5应用举例(2学时) 5.1树的基本概念 5.2二叉树(2学时) |
4 |
24 |
7 |
5.3二叉树的遍历(2学时) 5.4线索二叉树 5.5二叉树的应用(2学时) |
4 |
28 |
8 |
5.6树与二叉树的转换 5.7哈夫曼树及其应用(2学时) 6.1图的概念 6.2图的存储 6.3图的遍历(2学时) |
4 |
32 |
9 |
6.4最小生成树(2学时) |
2 |
34 |
10 |
6.5最短路径(2学时) |
2 |
36 |
11 |
7.1概述 7.2顺序查找 7.3二分法查找(2学时) |
2 |
38 |
12 |
7.4哈希法(2学时) |
2 |
40 |
13 |
8.1基本概念 8.2插入排序(2学时) |
2 |
42 |
14 |
8.3交换排序 8.4选择排序(2学时) |
2 |
44 |
15 |
8.5各种内排序方法的比较和选择 8.6外部排序简介(2学时) |
2 |
46 |
16 |
9.1文件的基本概念
9.2文件的操作 9.3文件的组织(2学时) |
2 |
48 |
实验安排表
| 周次 |
实验课题 |
学时 |
实验报 告次数 |
| 9 |
实验一
线性表的顺序存储实验 |
2 |
1 |
| 10 |
实验二
单链表实验 |
2 |
1 |
| 11 |
实验三
循环链表实验 |
2 |
1 |
| 12 |
实验四
栈、队列的实现及应用 |
2 |
1 |
| 13 |
实验五
串及数组的实验 |
2 |
1 |
| 14 |
实验六
二叉树的基本操作 |
2 |
1 |
| 15 |
实验七
查找 |
2 |
1 |
| 16 |
实验八
排序 |
2 |
1 |
