《数据结构-教案课程.doc》由会员分享,可在线阅读,更多相关《数据结构-教案课程.doc(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-课程简介人们在运用程序设计语言编写程序的过程中发现所有的数据都可以抽象为三种结构,而对这些数据的所有操作都可以转化为对这三种数据的几种基本操作,而大多数的程序设计技巧都可以抽象为一些最基本的算法。于是人们逐步发展了一门称为数据结构(或数据结构与算法)的计算机科学,它广泛应用于计算机领域。数据结构是信息与计算专业的核心基础课程之一。数据是计算机处理的对象,本课程研究的数据是非数值性、结构性的数据。学习本课程要求掌握各种主要数据结构的特点、计算机内的表示方法,以及处理数据的算法,对于算法所花费的时间和空间代价的分析也要求有一定程度的了解和掌握。通过本课程的学习,使学生透彻地理解各种数据对象的特点
2、,学会数据的组织方法和实现方法,并进一步培养基本的良好的程序设计能力。本课程主要包括如下三个方面的内容:1基本数据结构: 线性表、栈、队列、串、数组和广义表,掌握它们的特点、表示和实现,对静态结构要求非常熟练的编程上机实现,对动态结构要求逐步熟悉链表的表示,通过模仿实验教程中的例子,掌握编程技巧。强调类 C语言的书写规范,特别注意参数的区别,输入输出的方式和错误处理方式,以及抽象数据类型的表示和实现。能熟练完成以下的应用:多项式的计算、语法检查、回朔算法、递归算法、表达式求值、离散事件模拟、文字的编辑和稀疏矩阵进行矩阵运算采用的处理方法。2复杂数据结构: 树、二叉树、图。掌握它们的定义和特点、
3、表示和实现,特别注意与基本数据结构的区别,掌握各种遍历的递归和非递归算法,能熟练完成以下的应用:最优树、Huffman编码、拓扑排序、关键路径和最短路径问题。 3数据结构的应用: 查找和内部排序。熟练掌握静态查找表的查找方法和实现,了解哈希表的构造和查找方法。掌握各种内部排序方法的基本思想、算法特点、排序过程以及它们的时间复杂度分析。数据结构教学大纲课程名称:数据结构课程编号:014100028 适用专业:计算机、信息管理总学时数:60 学分数: 4 一、课程的性质、目的与任务数据结构是计算机科学技术、信息管理等专业的核心课程之一,是一门理论与工程实践密切相关的综合性课程,在计算机学科教学中具
4、有十分重要的作用。大力加强数据结构课程的建设,提高数据结构课程的教学质量,有利于教学改革和教育创新,有利于高级应用型人才和创新人才的培养。数据结构课程是计算机专业的专业基础课程,介绍计算机领域的常用数据结构以及各种查找和排序的算法,是计算机专业学生必修的一门技术基础课程,也是计算机专业的核心课程。数据结构是计算机专业的一门重要的专业基础课,主要解决数据的表示和数据的处理,系统介绍三大数据结构及其实现,为操作系统等课程提供必要的知识基础,为计算机人员提供必要的基本技能。二、课程教学基本要求本课程介绍常用数据结构之间的逻辑结构、存储结构和对其施加的运算,如:线性表、栈、队列、串、数组、广义表、树、
5、图等。同时还介绍各种查找和排序的算法。通过本门课程的学习,应使学生掌握以下几个方面的知识:1:系统学习常用基本数据结构及其在不同存储方式下的实现,掌握分析、选择不同的数据结构和存储结构的原则和方法。2:学习和掌握在各种存储结构上实现的各种算法及其设计思想,从而学习各种分析问题和解决问题的能力。3:掌握各种算法的时空效率的分析方法,学会在实际应用中选择合适的算法。4:掌握各种查找和排序的算法以及效率,并将其应用在程序设计中。三、课程教学内容体系第一章:概论1.1 什么是数据结构1.2 基本概念和术语1.3 抽象数据类型的表现与实现1.4 算法和算法分析教学要求:理解数据、数据元素、数据项的概念;
6、掌握逻辑结构和存储结构的关系;理解算法的基本概念;学会分析算法的时间复杂性和空间复杂性。第二章:线性表2.1 线性表的类型定义2.2 线性表的顺序表示和实现2.3 线性表的链式表示和实现(静态查找表不讲)2.4 一元多项式的表示及相加教学要求:理解线性表的定义和特点;掌握顺序表和链表的特点,掌握在这两种存储结构上各种基本运算的实现算法以及效率的分析,并学习在这两种存储结构上进行算法设计的方法; 以达到利用基本算法进行较复杂算法设计的目的。第三章:栈、队列3.1 栈3.2 栈的应有和举例3.2.1 数制转换3.3.4 迷宫求解3.3 栈与递归的实现3.4 队列教学要求:理解栈和队列的定义、特点,
7、学习它们的各种组织方式及算法;掌握它们的空和满的判断条件;并学会它们的简单应用。第四章:串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.
8、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 邻接表7.2.3 十字链表7.2.4 邻接多重表7.3 图的遍历7.3.1 深度
9、优先搜索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 哈希函数的
10、构造方法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 归并排序教学要求:熟练掌握各种排序方法的思想和特点,如:插入排序、交换排序、选择排序、分配排序等,学会分析它们的优点和缺点以及时空性能,并学会选择和应用各种排序方法解决实际问题。四、学时分配章节内容讲授学时上机学时习题学时一概 论
11、400二线性表611三栈、队列611四串211五数组和广义表411六树和二叉树811七图811九查找211十内部排序411总学时数:60课时4488五、推荐教材及教学参考书1. 教材数据结构;严蔚敏编著;清华大学出版社2. 教学参考书算法与数据结构(C语言版), 范策等编著,机械工业出版社, 2004数据结构(C语言版), 严蔚敏等编著, 清华大学出版社 2004数据结构与算法,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004数据结构实用教程(第二版),徐孝凯编著,清华大学出版社 2006数据结构辅导与提高实用教程(第二版),徐孝凯,清华大学出版社 2003数据结构,谢楚屏等,人民邮电出
12、版社,2001算法与数据结构C语言描述,张乃孝等,高等教育出版社,2002数据结构,殷人昆,清华大学出版社,2001计算机算法设计与分析,苏德富,电子工业出版社,2001算法与数据结构,傅清祥,王哓冬,电子工业出版社,1998数据结构C+与面向对象的途径,张乃孝,裘宗燕,高等教育出版社,2001数据结构用面向对象方法与C+描述,殷人昆等清华大学出版社算法设计与分析,梁田贵,张鹏编著,冶金工业出版社,2004六、考核办法和成绩评定标准根据教学要求进行期末考试,由任课教师根据完成情况进行评定,并最终结合平时成绩的考核给出综合成绩。 制定:制定日期:教案(首页) 授课时间 教案编写时间 课程名称数据
13、结构课程代码总学时讲课: 学时上机: 学时实习: 周学 分课程性质必修课() 选修课( )理论课() 实验课( )任课教师职称授课对象专业: 年级: 班级: 教材和主要参考资料选用教材: 数据结构, 严蔚敏编著 清华大学出版社主要参考书:算法与数据结构(C语言版), 范策,周世平,胡哓琨 等编著,机械工业出版社, 2004数据结构(C语言版), 严蔚敏等编著, 清华大学出版社 2004数据结构与算法,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004数据结构实用教程(第二版),徐孝凯编著,清华大学出版社 2006数据结构辅导与提高实用教程(第二版),徐孝凯,清华大学出版社 2003数据结构
14、,谢楚屏等,人民邮电出版社,2001算法与数据结构C语言描述,张乃孝等,高等教育出版社,2002数据结构,殷人昆,清华大学出版社,2001计算机算法设计与分析,苏德富,电子工业出版社,2001算法与数据结构,傅清祥,王哓冬,电子工业出版社,1998数据结构C+与面向对象的途径,张乃孝,裘宗燕,高等教育出版社,2001数据结构用面向对象方法与C+描述,殷人昆等清华大学出版社算法设计与分析,梁田贵,张鹏编著,冶金工业出版社,2004教学目的和教学要求通过本门课程的学习,应使学生掌握以下几个方面的知识:1 系统学习常用基本数据结构及其在不同存储方式下的实现,掌握分析、选择不同的数据结构和存储结构的原
15、则和方法。2 学习和掌握在各种存储结构上实现的各种算法及其设计思想,从而学习各种分析问题和解决问题的能力。3 掌握各种算法的时空效率的分析方法,学会在实际应用中选择合适的算法。4 掌握各种查找和排序的算法以及效率,并将其应用在程序设计中。教学重点和教学难点重点掌握数据结构之间的逻辑结构、存储结构和对其施加的运算,如:线性表、栈、队列、串、数组、广义表、树、图等。应掌握各种查找和排序的算法。难点章节:第六章:树和第七章:图。教学进程第1次课第2次课第3次课第4次课第5次课第6次课第7次课第8次课第9次课第10次课第11次课第12次课第13次课第14次课第15次课第16次课第17次课第18次课第1
16、9次课第20次课第21次课第22次课第23次课第24次课第25次课第26次课第27次课第28次课第29次课第30次课授课章节第1章 绪论:1.1 什么是数据结构、1.2 基本概念和术语第1章:1.3 抽象数据类型的表现与实现1.4 算法和算法分析第2章 线性表:2.1 线性表的类型定义2.2 线性表的顺序表示第2章 :2.3 线性表的链式表示和实现(1)第2章 :2.3 (2)2.4 一元多项式的表示及相加第3章 栈和队列:3.1、3.2.1第3章 栈和队列:3.2.4、3.2.5、3.3第3章 栈和队列:3.4综合习题课(1):前3章的相关内容综合实验课(1):前3章的相关内容第4章 串:4
17、.1、4.2.1、4.2.2、4.2.3、4.3.1第5章 数组和广义表:5.1、5.2第5章 数组和广义表:5.3综合实验课(2):第4-5章的相关内容第6章 树和二叉树:6.1、6.2第6章 树和二叉树:6.3、6.4.1第6章 树和二叉树:6.4.2、6.6第6章 树和二叉树:综合习题课(2):树的相关内容第7章 图:7.1、7.2第7章 图:7.3、7.4.1、7.4.3第7章 图:7.6第7章 图:综合习题课(3):图的相关内容第9章 查找:9.1、9.3综合实验课(3):第9章的相关内容第10章 内部排序:10.1、10.2第10章 内部排序:10.3、10.4综合习题课(3):第
18、9、10章的相关内容综合实验课(4):第10章的相关内容学 时222222222222222222222222222222备 注教案(分教案)课次:1 学时:2章 节第1章 绪论:1.1 什么是数据结构、1.2 基本概念和术语教学目的和教学要求了解数据结构的课程性质、内容、应用领域及其与其他学科的关系;掌握数据结构的相关概念和术语;掌握四类基本的数据关系。教学重 点难 点教学重点: 数据结构的相关概念和术语教学难点: 四类基本的数据关系教学进程(含章节教学内容、学时分配、教学方法、 辅助手段)教学进程:计算机的应用不再局限于科学计算,更多地用于控制,管理,数据处理等非数值计算的处理工作。计算机
19、加工处理的对象:数值,字符,表格,图形声音,图象等具有一定结构的数据。进行程序设计时必须分析待处理的对象的特性及各对象之间存在的关系产生背景。1.1 什么是数据结构1.2 数据结构的基本概念和术语 1. 数据(Data)2. 数据元素(Data Element)3. 数据对象(Data Object) 4. 结构(Data Structure)存储结构、抽象数据类型抽象数据类型 (Abstract Data Type) ADT的定义格式不唯一, 我们采用下述格式定义一个ADT: ADT 抽象数据类型名 数据对象: 数据关系: 基本操作: ADT 抽象数据类型名教学方法、课堂讲解、例题演示,课件
20、演示辅助手段:电脑、投影仪、教科书作业图1.5:要求理解和掌握四类基本的数据关系;并在日常生活中举例进行说明。主要参考资料算法与数据结构(C语言版), 范策,周世平,胡哓琨 等编著,机械工业出版社, 2004数据结构(C语言版), 严蔚敏等编著, 清华大学出版社 2004数据结构与算法,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004课后自我总结分析备注教案(分教案)课次:2 学时:2章 节第1章:1.3 抽象数据类型的表现与实现1.4 算法和算法分析教学目的和教学要求理解抽象数据类型的表示及实现;对算法、算法要求、算法效率的度量进行有效的分析。教学重 点难 点教学重点: 抽象数据类型的
21、表示及实现;算法、算法要求;教学难点: 算法效率的度量及有效的分析;教学进程(含章节教学内容、学时分配、教学方法、 辅助手段)教学进程:1.3 抽象数据类型的表示和实现1.4 算 法 1. 算法(Algorithm)的定义 Algorithm is a finite set of rules which gives a sequence of operation for solving a specific type of problem. (算法是规则的有限集合, 是为解决特定问题而规定的一系列操作。) 是指令的有限序列,其中每一条指令表示一个或多个操作。2. 算法的特性3. 算法设计的要求
22、) 算法的正确性 (1) 所设计的程序没有语法错误; (2) 所设计的程序对于几组输入数据能够得出满足要求的结果; (3) 所设计的程序对于精心选择的典型、 苛刻而带有刁难性的几组输入数据能够得到满足要求的结果。 (4) 程序对于一切合法的输入数据都能产生满足要求的结果。2) 可读性 3) 健壮性 4) 高效率和低存储量 、算法、 语言和程序的关系时间复杂度教学方法、课堂讲解、例题演示,课件演示辅助手段:电脑、投影仪、教科书作业1:图1.5、P13:算法的5个特征;2:P15:两段程序的语句的频度的分析主要参考资料算法与数据结构(C语言版), 范策,周世平,胡哓琨 等编著,机械工业出版社, 2
23、004数据结构(C语言版), 严蔚敏等编著, 清华大学出版社 2004数据结构与算法,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004课后自我总结分析备注教案(分教案)课次:3 学时:2章 节第2章 线性表:2.1 线性表的类型定义2.2 线性表的顺序表示教学目的和教学要求理解线性表的定义和特点;掌握顺序表以达到利用基本算法进行较复杂算法设计的目的。教学重 点难 点教学重点:线性表的定义和特点;线性表的顺序表示教学难点:线性表的顺序表示教学进程(含章节教学内容、学时分配、教学方法、 辅助手段)教学进程:线性结构的特点:在数据元素的非空有限集中, 存在唯一的一个被称为“第一个”的数据元素;
24、 存在唯一的一个被称为“最后一个”的数据元素; 除第一个元素之外,集合中的每个元素均只有一个前驱; 除最后一个元素之外,集合中的每个元素均只有一个后继。 2.1 线性表的类型定义2.1.1 线性表的逻辑结构2.1.2 线性表的抽象数据类型定义2.2 线性表的顺序表示和实现 2.2.1 线性表的顺序存储结构2.2.2 线性表顺序存储结构上的基本运算1. 初始化操作 2. 插入操作 3. 删除操作算法2.1算法2.3教学方法、课堂讲解、例题演示,课件演示辅助手段:电脑、投影仪、教科书作业1:算法2.1、图2.2、算法2.42:算法2.5、算法2.6主要参考资料算法与数据结构(C语言版), 范策,周
25、世平,胡哓琨 等编著,机械工业出版社, 2004数据结构(C语言版), 严蔚敏等编著, 清华大学出版社 2004数据结构与算法,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004课后自我总结分析备注教案(分教案)课次:4 学时:2章 节第2章 :2.3 线性表的链式表示和实现(1)教学目的和教学要求理解线性表的链表的特点,掌握在这种存储结构上各种基本运算的实现算法以及效率的分析,并学习在这种存储结构上进行算法设计的方法; 以达到利用基本算法进行较复杂算法设计的目的。教学重 点难 点教学重点:线性表的链式表示和实现;教学难点:单链表的插入、删除、查找和归并操作;教学进程(含章节教学内容、学时
26、分配、教学方法、 辅助手段)教学进程:2.3 线性表的链式表示和实现 2.3.1 单链表线性表的链式存储:图2.6 单链表的逻辑状态图2.7 带头结点单链表图示2.3.2 单链表上的基本运算 1. 建立单链表2. 查找3. 单链表插入操作4. 删除5合并单链表:教学方法、课堂讲解、例题演示,课件演示辅助手段:电脑、投影仪、教科书作业1:图2.5、图2.8、图2.92:算法2.8、算法2.9、算法2.10、算法2.11主要参考资料算法与数据结构(C语言版), 范策,周世平,胡哓琨 等编著,机械工业出版社, 2004数据结构(C语言版), 严蔚敏等编著, 清华大学出版社 2004数据结构与算法,许
27、卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004课后自我总结分析备注教案(分教案)课次:5 学时:2章 节第2章 :2.3 (2)2.4 一元多项式的表示及相加教学目的和教学要求理解线性表的链表的特点,掌握在这种存储结构上各种基本运算的实现算法以及效率的分析;掌握一元多项式的表示及相加的方法与算法。教学重 点难 点教学重点: 循环链表、双向链表及其算法;一元多项式的表示及相加的方法与算法;教学难点:双向链表及其算法、一元多项式相加的方法;教学进程(含章节教学内容、学时分配、教学方法、 辅助手段)教学进程:2.3.3 循环链表2.3.4 双向链表1. 双向链表的前插操作2. 双向链表的删除操
28、作2.3.6 顺序表和链表的比较 1. 基于空间的考虑、2. 基于时间的考虑、3. 基于语言的考虑2.4 一元多项式的表示及相加教学方法、课堂讲解、例题演示,课件演示辅助手段:电脑、投影仪、教科书作业1:图2.12、图2.14、图2.15、图2.16、图2.17、图2.182:算法2.18、算法2.19、算法2.23主要参考资料算法与数据结构(C语言版), 范策,周世平,胡哓琨 等编著,机械工业出版社, 2004数据结构(C语言版), 严蔚敏等编著, 清华大学出版社 2004数据结构与算法,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004课后自我总结分析备注教案(分教案)课次:6 学时:
29、2章 节第3章 栈和队列:3.1 栈、3.2.1 数制转换教学目的和教学要求理解栈的定义、特点,学习它的各种组织方式及算法;掌握它的空和满的判断条件;并学会它的简单应用。教学重 点难 点教学重点: 栈的定义、特点,学习它的各种组织方式及算法;教学难点: 栈的简单应用;教学进程(含章节教学内容、学时分配、教学方法、 辅助手段)教学进程:3.1 栈 3.1.1 栈的定义3.1.2 栈的表示和实现 1. 顺序栈顺序栈基本操作的实现:(1) 初始化、(2) 取栈顶元素、(3) 入栈、(4) 出栈2. 链栈3.2 栈的应用举例 1. 数制转换教学方法、课堂讲解、例题演示,课件演示辅助手段:电脑、投影仪、
30、教科书作业1:图3.1、3.22:P47:栈基本操作的算法描述、算法3.1主要参考资料算法与数据结构(C语言版), 范策,周世平,胡哓琨 等编著,机械工业出版社, 2004数据结构(C语言版), 严蔚敏等编著, 清华大学出版社 2004数据结构与算法,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004课后自我总结分析备注教案(分教案)课次:7 学时:2章 节第3章 栈和队列:3.2.4 迷宫求解、3.3 栈与递归的实现教学目的和教学要求了解迷宫求解的算法思路、了解计算机图形学中的种子填充苏算法;掌握汉诺塔算法及其过程。教学重 点难 点教学重点: 迷宫求解的算法思路、汉诺塔算法及其过程;教学
31、难点: 汉诺塔算法及其过程;教学进程(含章节教学内容、学时分配、教学方法、 辅助手段)教学进程:4. 迷宫求解(拓展:填充算法) 3.3 栈与递归的实现1. 递归特性问题 1) 递归函数 2)汉诺塔算法三个盘子搬动时hanoi(3, A, B, C) 递归调用过程: hanoi(2,A,C,B): hanoi(1,A,B,C) move(A-C) 1号搬到C move(A-B) 2号搬到B hanoi(1,C,A,B) move(C-B) 1号搬到B move(A-c) 3号搬到C hanoi(2,B,A,C): hanoi(1,B,C,A) move(B-A) 1号搬到A move(B-c)
32、 2号搬到C hanoi(1,A,B,C) move(A-C) 1号搬到C教学方法、课堂讲解、例题演示,课件演示辅助手段:电脑、投影仪、教科书作业1:图3.72:算法3.5、种子填充算法、两种算法求解n!主要参考资料算法与数据结构(C语言版), 范策,周世平,胡哓琨 等编著,机械工业出版社, 2004数据结构(C语言版), 严蔚敏等编著, 清华大学出版社 2004数据结构与算法,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004课后自我总结分析备注教案(分教案)课次:8 学时:2章 节第3章 栈和队列:3.4 队列教学目的和教学要求掌握队列的数据结构和链队列的相关操作;掌握循环队列的相关内
33、容;教学重点、难点教学重点: 列的数据结构和链队列的相关操作;教学难点: 循环队列的相关操作;教学进程(含章节教学内容、学时分配、教学方法、 辅助手段)教学进程:3.4 队 列3.4.1 队列的定义 队列 (Queue)是另一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出(Fist In Fist Out, 缩写为FIFO)的特性。在队列中,允许插入的一端叫做队尾(rear),允许删除的一端则称为队头(front)。3.4.2 队列的表示和实现 链队列: (1) 初始化操作、(2)销毁队列、(3) 入队操作、(4) 出队操作3.4.3:循环队列如何区分队
34、列“空”和“满”1. 另设一个标志位以区分队列是空还是满;2. 少用一个元素空间,当队列头指针在队列尾指针的下一个位置上时为“满”。当Q.front=Q.rear时队空;Q.front+1=Q.rear时队满 循环队列满足条件 (Q.rear+1)%MAXQSIZE= Q.front 队满教学方法、课堂讲解、例题演示,课件演示辅助手段:电脑、投影仪、教科书作业1:图3.8、图3.10、图3.11、图3.14;2:P62:队列的基本操作算法、P64:循环队列的基本操作算法;主要参考资料算法与数据结构(C语言版), 范策,周世平,胡哓琨 等编著,机械工业出版社, 2004数据结构(C语言版), 严
35、蔚敏等编著, 清华大学出版社 2004数据结构与算法,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004课后自我总结分析备注教案(分教案)课次:9 学时:2章 节综合习题课(1):前3章的相关内容教学目的和教学要求要求掌握栈的应用及递归算法教学重 点难 点教学重点: 教学难点: 教学进程(含章节教学内容、学时分配、教学方法、 辅助手段)教学进程:1:求N!的递归算法;2:求N!的栈的算法;3:数制转换算法的具体实现;4:种子填充算法的具体过程:四向连通填充算法:a) 种子像素压入栈中;b) 如果栈为空,则转e);否则转c);c) 弹出一个像素,并将该像素置成填充色;并判断该像素相邻的四连通
36、像素是否为边界色或已经置成多边形的填充色,若不是,则将该像素压入栈;d) 转b);e) 结束。 教学方法、课堂讲解、例题演示,课件演示辅助手段:电脑、投影仪、教科书作业主要参考资料算法与数据结构(C语言版), 范策,周世平,胡哓琨 等编著,机械工业出版社, 2004数据结构(C语言版), 严蔚敏等编著, 清华大学出版社 2004数据结构与算法,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004课后自我总结分析备注教案(分教案)课次:10 学时:2章 节综合实验课(1):前3章的相关内容教学目的和教学要求1:求N!的递归算法;2:求N!的栈的算法;3:数制转换算法的具体实现;教学进程(含章节
37、教学内容、学时分配、教学方法、 辅助手段)教学进程:1:求N!的递归算法;2:求N!的栈的算法;3:数制转换算法的具体实现;#include stdio.h#include stdlib.h#define size 20typedef struct int *base; int *top; int ssize;ss;void ist(ss &s) s.base=(int *)malloc(size*sizeof(int); s.top=s.base; s.ssize=size;void main() long n,m; ss w;ist(w);printf(请输入N的值(1-32768):);
38、 scanf(%d,&n);m=n; while(n) *w.top+=n%8; n=n/8; printf(转换为8进制以后的值:n(%d)10=(,m); while(w.top!=w.base) printf(%d,*-w.top); printf()8n); 教学方法、课堂讲解、例题演示,课件演示辅助手段:电脑、投影仪、教科书主要参考资料算法与数据结构(C语言版), 范策,周世平,胡哓琨 等编著,机械工业出版社, 2004数据结构(C语言版), 严蔚敏等编著, 清华大学出版社 2004数据结构与算法,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004课后自我总结分析教案(分教案)课
39、次:11 学时:2章 节第4章 串:4.1 串的定义、4.2.1 定长顺序存储表示 4.2.3 串的块链存储表示4.3.1 求子串位置的定位函数教学目的和教学要求掌握串的定义、定长顺序存储表示;了解串的块链存储表示;掌握求子串位置的定位函数(模式匹配算法);教学重 点难 点教学重点: 串的定义、定长顺序存储表示;串的块链存储表示;教学难点:求子串位置的定位函数(模式匹配算法);教学进程(含章节教学内容、学时分配、教学方法、 辅助手段)教学进程:4.1 串的定义 串(String)是零个或多个字符组成的有限序列。 一般记为: S= a1a2.an (n0)4.2 串的表示和实现 4.2.1 定长
40、顺序存储表示串1.串联接Concat(& T , S1, S2) 2. 求子串SubString ( & Sub , S , pos , len )4.2.3串的块链存储表示4.3 串的模式匹配算法 4.3.1 求子串位置的定位函数 Index( S, T ,pos)int Index (SString S, SString T, int pos ) /返回子串T在主串中第 pos个字符之后的位置。如不存在,则函数值为0。其中:T 非空,1=pos=Strlength( S )。 i = pos ; j = 1 ; while ( i=S 0 & j T 0 ) return i - T 0 ; else