数据结构教案.docx
《数据结构教案.docx》由会员分享,可在线阅读,更多相关《数据结构教案.docx(65页珍藏版)》请在冰豆网上搜索。
数据结构教案
课程简介
人们在运用程序设计语言编写程序的过程中发现所有的数据都可以抽象为三种结构,而对这些数据的所有操作都可以转化为对这三种数据的几种基本操作,而大多数的程序设计技巧都可以抽象为一些最基本的算法。
于是人们逐步发展了一门称为数据结构(或数据结构与算法)的计算机科学,它广泛应用于计算机领域。
数据结构是信息与计算专业的核心基础课程之一。
数据是计算机处理的对象,本课程研究的数据是非数值性、结构性的数据。
学习本课程要求掌握各种主要数据结构的特点、计算机内的表示方法,以及处理数据的算法,对于算法所花费的时间和空间代价的分析也要求有一定程度的了解和掌握。
通过本课程的学习,使学生透彻地理解各种数据对象的特点,学会数据的组织方法和实现方法,并进一步培养基本的良好的程序设计能力。
本课程主要包括如下三个方面的内容:
1.基本数据结构:
线性表、栈、队列、串、数组和广义表,掌握它们的特点、表示和实现,对静态结构要求非常熟练的编程上机实现,对动态结构要求逐步熟悉链表的表示,通过模仿实验教程中的例子,掌握编程技巧。
强调类C语言的书写规范,特别注意参数的区别,输入输出的方式和错误处理方式,以及抽象数据类型的表示和实现。
能熟练完成以下的应用:
多项式的计算、语法检查、回朔算法、递归算法、表达式求值、离散事件模拟、文字的编辑和稀疏矩阵进行矩阵运算采用的处理方法。
2.复杂数据结构:
树、二叉树、图。
掌握它们的定义和特点、表示和实现,特别注意与基本数据结构的区别,掌握各种遍历的递归和非递归算法,能熟练完成以下的应用:
最优树、Huffman编码、拓扑排序、关键路径和最短路径问题。
3.数据结构的应用:
查找和内部排序。
熟练掌握静态查找表的查找方法和实现,了解哈希表的构造和查找方法。
掌握各种内部排序方法的基本思想、算法特点、排序过程以及它们的时间复杂度分析。
37
/1
《数据结构》教学大纲
课程名称:
数据结构
课程编号:
014100028适用专业:
计算机、信息管理
总学时数:
60学分数:
4
一、课程的性质、目的与任务
数据结构是计算机科学技术、信息管理等专业的核心课程之一,是一门理论与工程实践密切相关的综合性课程,在计算机学科教学中具有十分重要的作用。
大力加强数据结构课程的建设,提高数据结构课程的教学质量,有利于教学改革和教育创新,有利于高级应用型人才和创新人才的培养。
《数据结构》课程是计算机专业的专业基础课程,介绍计算机领域的常用数据结构以及各种查找和排序的算法,是计算机专业学生必修的一门技术基础课程,也是计算机专业的核心课程。
数据结构是计算机专业的一门重要的专业基础课,主要解决数据的表示和数据的处理,系统介绍三大数据结构及其实现,为操作系统等课程提供必要的知识基础,为计算机人员提供必要的基本技能。
二、课程教学基本要求
本课程介绍常用数据结构之间的逻辑结构、存储结构和对其施加的运算,如:
线性表、栈、队列、串、数组、广义表、树、图等。
同时还介绍各种查找和排序的算法。
通过本门课程的学习,应使学生掌握以下几个方面的知识:
1:
系统学习常用基本数据结构及其在不同存储方式下的实现,掌握分析、选择不同的数据结构和存储结构的原则和方法。
2:
学习和掌握在各种存储结构上实现的各种算法及其设计思想,从而学习各种分析问题和解决问题的能力。
3:
掌握各种算法的时空效率的分析方法,学会在实际应用中选择合适的算法。
4:
掌握各种查找和排序的算法以及效率,并将其应用在程序设计中。
三、课程教学内容体系
第一章:
概论
1.1什么是数据结构
1.2基本概念和术语
1.3抽象数据类型的表现与实现
1.4算法和算法分析
教学要求:
理解数据、数据元素、数据项的概念;掌握逻辑结构和存储结构的关系;理解算法的基本概念;学会分析算法的时间复杂性和空间复杂性。
第二章:
线性表
2.1线性表的类型定义
2.2线性表的顺序表示和实现
2.3线性表的链式表示和实现(静态查找表不讲)
2.4一元多项式的表示及相加
教学要求:
理解线性表的定义和特点;掌握顺序表和链表的特点,掌握在这两种存储结构上各种基本运算的实现算法以及效率的分析,并学习在这两种存储结构上进行算法设计的方法;以达到利用基本算法进行较复杂算法设计的目的。
第三章:
栈、队列
3.1栈
37
/2
3.2栈的应有和举例
3.2.1数制转换
3.3.4迷宫求解
3.3栈与递归的实现
3.4队列
教学要求:
理解栈和队列的定义、特点,学习它们的各种组织方式及算法;掌握它们的空和满的判断条件;并学会它们的简单应用。
第四章:
串
4.1串类型的定义
4.2串的表示和实现
4.2.1定长顺序存储表示
4.2.3串的块链存储表示
4.3串的模式匹配算法
4.3.1求字串位置的定位函数
教学要求:
了解串的概念,掌握串的基本运算,学习串运算在不同存储结构下的实现过程。
第五章:
多维数组和广义表
5.1数组的定义
5.2数组的顺序表现和实现
5.3矩阵的压缩存储
教学要求:
领会数组的定义,数组的两种顺序存储结构,并领会几种特殊矩阵和稀疏矩阵的压缩存储方法。
第六章:
树
6.1树的定义和基本术语
6.2二叉树
6.2.1二叉树的定义
6.2.2二叉树的性质
6.2.3二叉树的存储结构
6.3遍历二叉树和线索二叉树
6.3.1遍历二叉树
6.4树和森林
6.4.1树的存储结构
6.4.2森林与二叉树的转换
6.4.3树和森林的遍历
6.6赫夫曼树及其应用
6.6.1最优二叉树(赫夫曼树)
6.6.2赫夫曼编码
教学要求:
理解树型结构的概念和术语,领会二叉树的定义、形态、性质和存储结构,掌握二叉树的各种遍历算法极其实现过程,了解树和森林及其相互转换;掌握哈夫曼树极其应用。
第七章:
图
7.1图的定义和术语
7.2图的存储结构
7.2.1数组表示法
7.2.2邻接表
37
/3
7.2.3十字链表
7.2.4邻接多重表
7.3图的遍历
7.3.1深度优先搜索
7.3.2广度优先搜索
7.4图的连通性问题
7.4.1无向图的连通分量和生成树
7.4.3最小生成树
7.5有向无环图及其应用
7.5.1拓扑排序
7.5.2关键路径
7.6最短路径
7.6.1从某个源点到其余各顶点的最短路径
教学要求:
理解图型结构的概念和术语,掌握图的邻接矩阵和邻接表两种存储形式,理解图的遍历的基本思想,掌握图的两种遍历的方法和其实现的过程,学会图在最小生成树、拓扑排序、最短路径、关键路径中的应用。
第九章:
查找
9.1静态查找表
9.1.1顺序表的查找
9.1.2有序表的查找
9.1.4索引顺序表的查找
9.3哈希表
9.3.1什么是哈希表
9.3.2哈希函数的构造方法
9.3.3处理冲突的方法
教学要求:
掌握查找表的定义和分类,熟练掌握顺序查找和二分查找的思想,了解二叉排序树及其查找,了解散列查找的思想和有关方法。
第十章:
内部排序
10.1概述
10.2插入排序
10.2.1直接插入排序
10.2.2其他插入排序(表的插入排序不讲)
10.2.3希尔排序
10.3快速排序
10.4选择排序
10.4.1简单选择排序
10.5归并排序
教学要求:
熟练掌握各种排序方法的思想和特点,如:
插入排序、交换排序、选择排序、分配排序等,学会分析它们的优点和缺点以及时空性能,并学会选择和应用各种排序方法解决实际问题。
37
/4
四、学时分配
章节内讲授学上机学习题学
040
116线性1栈、队16
121
141数组和广义1树和二叉81
181
121查1内部排14
8
8
总学时数:
60课时44
五、推荐教材及教学参考书1.教材《数据结构》;严蔚敏编著;清华大学出版社教学参考书2.
2004《算法与数据结构(C语言版)》,范策等编著,机械工业出版社,2004
语言版)》,严蔚敏等编著,清华大学出版社C《数据结构(2004《数据结构与算法》,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2006《数据结构实用教程(第二版)》,徐孝凯编著,清华大学出版社
2003《数据结构辅导与提高实用教程(第二版)》,徐孝凯,清华大学出版社2001
《数据结构》,谢楚屏等,人民邮电出版社,2002语言描述》,张乃孝等,高等教育出版社,《算法与数据结构-C2001
《数据结构》,殷人昆,清华大学出版社,2001《计算机算法设计与分析》,苏德富,电子工业出版社,1998
《算法与数据结构》,傅清祥,王哓冬,电子工业出版社,2001与面向对象的途径》,张乃孝,裘宗燕,高等教育出版社,《数据结构-C++描述》,殷人昆等清华大学出版社《数据结构-用面向对象方法与C++2004《算法设计与分析》,梁田贵,张鹏编著,冶金工业出版社,
六、考核办法和成绩评定标准根据教学要求进行期末考试,由任课教师根据完成情况进行评定,并最终结合平时成绩的考核给出综合成绩。
制定:
制定日期:
37/5
教案(首页)授课时间教案编写时间
课程代数据结课程名总学必修课(√选修课学讲课课程性理论课(√实验课学上机
实习职任课教
授课对年级班级专业
清华大学出版选用教材《数据结构》严蔚敏编
主要参考书《算法与数据结构语言版)》范策,周世平,胡哓等编著,机械工业出版社2004
《数据结构语言版)》严蔚敏等编著清华大学出版2004
《数据结构与算法》,许卓群,杨冬青,唐世渭,张铭,高等教育出版社2004
《数据结构实用教程(第二版)》,徐孝凯编著,清华大学出版2006
教《数据结构辅导与提高实用教程(第二版)》,徐孝凯,清华大学出版2003《数据结构》,谢楚屏等,人民邮电出版社2001
主要参资《算法与数据结构语言描述》,张乃孝等,高等教育出版社2002
《数据结构》,殷人昆,清华大学出版社2001
《计算机算法设计与分析》,苏德富,电子工业出版社2001
《算法与数据结构》,傅清祥,王哓冬,电子工业出版社1998
《数据结构C+与面向对象的途径》,张乃孝,裘宗燕,高等教育出版社2001
《数据结构-用面向对象方法C+描述》,殷人昆等清华大学出版
《算法设计与分析》,梁田贵,张鹏编著,冶金工业出版社2004
通过本门课程的学习,应使学生掌握以下几个方面的知识
系统学习常用基本数据结构及其在不同存储方式下的实现,掌握分析、选择不同的数据构和存储结构的原则和方法
教学目学习和掌握在各种存储结构上实现的各种算法及其设计思想从而学习各种分析问题和教学要决问题的能力
掌握各种算法的时空效率的分析方法,学会在实际应用中选择合适的算法
掌握各种查找和排序的算法以及效率,并将其应用在程序设计中
重点掌握数据结构之间的逻辑结构存储结构和对其施加的运算如线性表栈队列串、数组、广义表、树、图等。
应掌握各种查找和排序的算法教学重
难点章节:
第六章:
树和第七章:
图。
和
教学难点37
/6
教学进授课章
2次绪论1.1什么是数据结构1.2基本概念和术2次抽象数据类型的表现与实1.4算法和算法分章1.3
22.2线性表的顺序表次线性表2.1线性表的类型定22.3次线性表的链式表示和实现22.4一元多项式的表示及相次2.323.2.1栈和队列3.次
23.3次栈和队列3.2.3.2.23.4
栈和队列次
2章的相关内次综合习题课:
21次章的相关内综合实验课:
4.3.14.2.4.2.串4.24.2.1次5.2数组和广义表5.1次25.3数组和广义表21次章的相关内2:
4-1次综合实验课6.2树和二叉树6.次216.4.1树和二叉树6.12次6.6树和二叉树6.4.21次
2
树和二叉树次121次综合习题课:
树的相关内7.27.图22次7.4.37.图27.4.次27.6图22次图2次2
次:
图的相关内综合习题课229.39.2
查找2次22章的相关内:
综合实验课次10.2内部排序10.2次1210.410.1内部排序2次2
1章的相关内:
综合习题课22次3次章的相关内12
综合实验课:
第37
/7
教案(分教案)
课次:
1学时:
2
绪论1.1什么是数据结构1.2基本概念和术
教学目了解数据结构的课程性质、内容、应用领域及其与其他学科的关系;掌握数据结构的相概念和术语;掌握四类基本的数据关系教学要教学重点数据结构的相关概念和术教学难点四类基本的数据关
教学进程
计算机的应用不再局限于科学计算,更多地用于控制,管理,数据处理等非数值计算处理工作。
计算机加工处理的对象:
数值,字符,表格,图形声音,图象等具有一定结构数据。
进行程序设计时必须分析待处理的对象的特性及各对象之间存在的关系———产生景
1.1什么是数据结
1.2数据结构的基本概念和术
1.数据Dat教学进2.数据元素DataElemen(含章数据对象DataObjec3.教学容、4.结构(DataStructure)存储结构、抽象数据类型学时分配、(AbstractDataType)抽象数据类型教学方法、ADT:
ADT的定义格式不唯一我们采用下述格式定义一个辅助手段){
抽象数据类型名ADT
:
<数据对象的定义>数据对象结构关系的定义>:
<数据关系>基本操作:
<基本操作的定义}ADT抽象数据类型名
教学方法、课堂讲解、例题演示,课件演示电脑、投影仪、教科书辅助手段:
作业图1.5:
要求理解和掌握四类基本的数据关系;并在日常生活中举例进行说明。
2004
周世平,,范策,胡哓琨等编著,机械工业出版社,》C《算法与数据结构(语言版)主要2004
C《数据结构(语言版)》,严蔚敏等编著,清华大学出版社参考资料2004
《数据结构与算法》,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,课后自我总结分析备注
37
/8
教案(分教案)
课次:
2学时:
2
章1.3抽象数据类型的表现与实1.4算法和算法分
教学目理解抽象数据类型的表示及实现对算法、算法要求、算法效率的度量进行有效的分析教学要教学重点抽象数据类型的表示及实现;算法、算法要求教学难点算法效率的度量及有效的分析难
教学进程
1.3抽象数据类型的表示和实
1.4
1.算法Algorith)的定
Algorithmisafinitesetofruleswhichgivesasequenceofoperationforsolving
aspecifictypeofproblem.算法是规则的有限集合是为解决特定问题而规定的一列操作)是指令的有限序列,其中每一条指令表示一个或多个操作
2.算法的特教学进算法设计的要3.(含章算法的正确1教学容、
(1)所设计的程序没有语法错误;学时分配、所设计的程序对于几组输入数据能够得出满足要求的结果;
(2)教学方法、苛刻而带有刁难性的几组输入数据能够得到所设计的程序对于精心选择的典型、(3)辅助手段)满足要求的结果。
(4)程序对于一切合法的输入数据都能产生满足要求的结果。
可读性2)3)健壮性语言和程序的关系、算法、4)高效率和低存储量
时间复杂度课堂讲解、例题演示,课件演示教学方法、辅助手段:
电脑、投影仪、教科书个特征;:
算法的5P131:
图1.5、作业:
两段程序的语句的频度的分析2:
P152004
周世平,,范策,胡哓琨等编著,机械工业出版社,》C《算法与数据结构(语言版)主要2004
C《数据结构(语言版)》,严蔚敏等编著,清华大学出版社参考资料2004
《数据结构与算法》,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,课后自我总结分析备注
37
/9
教案(分教案)2
学时:
课次:
3
2.2线性表的顺序表示章线性表:
2.1线性表的类型定义第章节2教学目的理解线性表的定义和特点;掌握顺序表以达到利用基本算法进行较复杂算法设计的目的。
和教学要求教学教学重点:
线性表的定义和特点;线性表的顺序表示点重教学难点:
线性表的顺序表示难点教学进程:
线性结构的特点:
在数据元素的非空有限集中,存在唯一的一个被称为“第一个”的数据元素;?
存在唯一的一个被称为“最后一个”的数据元素;?
除第一个元素之外,集合中的每个元素均只有一个前驱;?
除最后一个元素之外,集合中的每个元素均只有一个后继。
?
教学进程2.1线性表的类型定义
(含章节2.1.1线性表的逻辑结构
容、教学内学时分配、
教学方法、2.1.2线性表的抽象数据类型定义2.2线性表的顺序表示和实现辅助手段)2.2.1线性表的顺序存储结构2.2.2线性表顺序存储结构上的基本运算删除操作初始化操作1.2.插入操作3.
2.1算法算法2.3教学方法、课堂讲解、例题演示,课件演示电脑、投影仪、教科书辅助手段:
2.42.2、算法、图1:
算法2.1业作2.52:
算法、算法2.62004
范策,周世平,胡哓琨机械工业出版社,等编著,》C《算法与数据结构(语言版),主要2004
清华大学出版社《数据结构(C语言版)》,严蔚敏等编著,参考资料2004《数据结构与算法》,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,课后自我总结分析备注
37
/10
教案(分教案)2
学时:
课次:
4
1):
2.3线性表的链式表示和实现(第2章节章理解线性表的链表的特点,掌握在这种存储结构上各种基本运算的实现算法以及效率的教学目的
以达到利用基本算法进行较复杂算法并学习在这种存储结构上进行算法设计的方法;和分析,设计的目的。
教学要求教学教学重点:
线性表的链式表示和实现;点重教学难点:
单链表的插入、删除、查找和归并操作;难点教学进程:
线性表的链式表示和实现2.3
单链表2.3.1
线性表的链式存储:
教学进程
图2.6单链表的逻辑状态(含章节
容、教学内
学时分配、教学方法、图2.7带头结点单链表图示辅助手段)2.3.2单链表上的基本运算1.建立单链表2.查找3.单链表插入操作4.删除5.合并单链表:
教学方法、课堂讲解、例题演示,课件演示辅助手段:
电脑、投影仪、教科书2.9
、图:
图2.5、图2.81业作2.8、算法2.9、算法2.10、算法2.112:
算法2004
机械工业出版社,C《算法与数据结构(语言版)》,范策,周世平,胡哓琨等编著,主要2004
清华大学出版社《数据结构(C语言版)》,严蔚敏等编著,参考资料2004《数据结构与算法》,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,课后自我总结分析备注
37
/11
教案(分教案)2
学时:
课次:
5
一元多项式的表示及相加22.3()2.4第章节2章:
教学目的理解线性表的链表的特点,掌握在这种存储结构上各种基本运算的实现算法以及效率的和分析;掌握一元多项式的表示及相加的方法与算法。
教学要求学教循环链表、双向链表及其算法;一元多项式的表示及相加的方法与算法;教学重点:
重点教学难点:
双向链表及其算法、一元多项式相加的方法;点难
教学进程:
循环链表2.3.3
教学进程(含章节容、教学内学时分配、
2.3.4双向链表教学方法、辅助手段)1.双向链表的前插操作2.双向链表的删除操作2.3.6顺序表和链表的比较1.基于空间的考虑、2.基于时间的考虑、3.基于语言的考虑2.4一元多项式的表示及相加教学方法、课堂讲解、例题演示,课件演示辅助手段:
电脑、投影仪、教科书2.18、图、图2.16、图2.172.121:
图、图2.14、图2.15业作2.23
2:
算法2.18、算法2.19、算法2004
机械工业出版社,C《算法与数据结构(语言版)》,范策,周世平,胡哓琨等编著,主要2004
严蔚敏等编著,清华大学出版社C《数据结构(语言版)》,参考资料2004《数据结构与算法》,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,课后自我总结分析备注
37
/12
教案(分教案)2
学时:
课次:
6
数制转换栈、栈和队列:
3.13.2.1第章节3章教学目的理解栈的定义、特点,学习它的各种组织方式及算法;掌握它的空和满的判断条件;并学和会它的简单应用。
教学要求教学栈的定义、特点,学习它的各种组织方式及算法;教学重点:
点重栈的简单应用;教学难点:
点难
教学进程3.13.1.1栈的定3.1.2栈的表示和实1.顺序栈
教学进程(含章节容、教学内顺序栈基本操作的实现:
学时分配、出栈
(2)初始化、取栈顶元素、(3)入栈、(4)
(1)教学方法、链栈2.辅助手段)数制转换3.2栈的应用举例1.
教学方法、课堂讲解、例题演示,课件演示辅助手段:
电脑、投影仪、教科书3.2
:
图3.1、1业作:
栈基本操作的算法描述、算法3.1:
2P472004
等编著,胡哓琨机械工业出版社,范策,语言版)《算法与数据结构(C》,周世平,主要《数据结构(C语言版)》,严蔚敏等编著,清华大学出版社2004
参考资料《数据结构与算法》,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004
课后自我总结分析备注
37
/13
教案(分教案)2
学时:
:
课次7
3.3栈与递归的实现章栈和队列:
3.2.4迷宫求解、第节章3教学目的和了解迷宫求解的算法思路、了解计算机图形学中的种子填充苏算法;掌握汉诺塔算法及其过程。
教学要求
学教迷宫求解的算法思路、汉诺塔算法及其过程;教学重点:
重点汉诺塔算法及其过程;教学难点:
难点
教学进程4.迷宫求解(拓展:
填充算法)
教学进程栈与递归的实现3.3(含章节递归特性问题1.容、教学内)汉诺塔算法1)递归函数2学时分配、递归调用过程:
三个盘子搬动时hanoi(3,A,B,C)教学方法、hanoi(2,A,C,B):
辅助手段)Chanoi(1,A,B,C)move(A->C)1号搬到2号搬到Bmove(A->B)
hanoi(1,C,A,B)move(C->B)1号搬到B号搬到C