新版数据结构教案.docx

上传人:b****1 文档编号:10666931 上传时间:2023-05-27 格式:DOCX 页数:66 大小:42.94KB
下载 相关 举报
新版数据结构教案.docx_第1页
第1页 / 共66页
新版数据结构教案.docx_第2页
第2页 / 共66页
新版数据结构教案.docx_第3页
第3页 / 共66页
新版数据结构教案.docx_第4页
第4页 / 共66页
新版数据结构教案.docx_第5页
第5页 / 共66页
新版数据结构教案.docx_第6页
第6页 / 共66页
新版数据结构教案.docx_第7页
第7页 / 共66页
新版数据结构教案.docx_第8页
第8页 / 共66页
新版数据结构教案.docx_第9页
第9页 / 共66页
新版数据结构教案.docx_第10页
第10页 / 共66页
新版数据结构教案.docx_第11页
第11页 / 共66页
新版数据结构教案.docx_第12页
第12页 / 共66页
新版数据结构教案.docx_第13页
第13页 / 共66页
新版数据结构教案.docx_第14页
第14页 / 共66页
新版数据结构教案.docx_第15页
第15页 / 共66页
新版数据结构教案.docx_第16页
第16页 / 共66页
新版数据结构教案.docx_第17页
第17页 / 共66页
新版数据结构教案.docx_第18页
第18页 / 共66页
新版数据结构教案.docx_第19页
第19页 / 共66页
新版数据结构教案.docx_第20页
第20页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

新版数据结构教案.docx

《新版数据结构教案.docx》由会员分享,可在线阅读,更多相关《新版数据结构教案.docx(66页珍藏版)》请在冰点文库上搜索。

新版数据结构教案.docx

新版数据结构教案

五邑大学信息学院

《数据结构》教案

2007~2008年度第二学期

课程名称数据结构

课程主讲人白明、金旺春

课程所属教研室软件工程、计算机科学与技术

课程类型及学时理论课(含实验)、72学时

授课教材版本《数据结构(C++版)》

清华大学出版社

授课班级计算机科学与技术2006级1班、2班

网络工程2006级1班

软件工程2006级1班

授课日期2008年3月~7月

五邑大学信息学院制

二○○七年一月

教学专题——开课

1-1

教学专题

开课—课程综述

授课学时

1学时(50分钟)

教学章节

组织

授课对象

计算机学科各专业本科生

教学类型

理论课

授课形式

课堂讲授

教学重点

为什么要学习数据结构这门课以及如何学习

教学难点

认识课程,找到学好课程的方法

教学内容

教学过程

课程引入:

介绍数据结构课程在教学计划中的位置

5分钟

1.课程性质:

核心地位

2.课程学习目标

(1)学习知识角度

(2)培养能力角度

3.介绍教材:

主教材和与之配套的辅助教材

4.介绍参考文献资料:

多角度、全方位学习

5.介绍网络教学资源:

6.学习方法及要求

(1)坚持上课

(2)学会读书:

预习+复习+拓展

(3)认真作业和实验

(4)下载课件、演示系统,提高记忆效率

(5)理解知识+自主实践

7.考核要求:

作业+考勤+实验+自主实践(期中考核)+期末考试

5分钟

15分钟

 

3分钟

3分钟

5分钟

10分钟

 

2分钟

课程总结:

下定决心、树立信心、坚持恒心、改革创新

2分钟

教学提示

1.开课要精彩,激发兴趣,认识重要性

2.明确课程目标:

学些什么,达到的目标

3.需要具备的基本知识,对基础差的同学多鼓励—从现在做起==追赶—超出

4.为什么学,怎样学,如何学好

5.考研

思考题

课后导读

你对你所学的专业了解多少?

你对学习这门课应该如何准备?

在数据结构方面,最早的权威性著作是Knuth所著的系列丛书《计算机程序设计艺术》,这套书非常值得一看

教学后记

 

教学专题——数据结构的研究对象

1-2

教学专题

数据结构的兴起和发展

授课学时

1学时(50分钟)

教学章节

1.1、1.2

授课对象

计算机学科各专业本科生

教学类型

理论课

授课形式

课堂讲授

教学重点

抽象与数据类型;数据结构的研究对象

教学难点

数据结构与类的对应关系

教学内容

教学目标

知识点

学习要求

了解

理解

掌握

熟练掌握

程序设计的性质

数据结构的起源和发展

数据结构与程序设计的关系

计算机求解问题的一般过程

数据结构的研究对象

教学过程

课程引入:

介绍数据结构课程体系的起源。

了解历史—专业素养

3分钟

1.提出问题:

程序设计的实质是什么?

通过具体实例得出答案

2.介绍数据结构与程序设计的关系,强调数据结构始终是程序设计的基础,强调从面向对象角度看待数据结构

3.从发展的观点和应用的观点讨论数据结构的发展

4.从计算机求解问题的一般过程入手,建立抽象和数据模型的初步概念

5.通过具体实例总结数据结构的研究对象,注意引申数据元素之间的关系

3分钟

5分钟

12分钟

3分钟

15分钟

10分钟

课程总结:

数据结构研究的对象是非数值计算问题

2分钟

教学提示

1.从问题求解过程入手,理解“数据结构+算法=程序”,理解数据结构和算法在问题求解中的作用

2.通过结构化程序和面向对象程序对比,从框架上理解为什么将数据结构从结构化发展到面向对象

3.数据结构是从非数值问题抽象出来的数据模型,这个阶段的学生还没有抽象和模型的概念,需要补充抽象和模型的相关知识

媒体使用

多媒体课件:

Kunth的照片及介绍;用动画辅助解释基本概念

教学网络平台:

相关教学材料

思考题

课后导读

在数据结构方面,最早的权威性著作是Knuth所著的系列丛书《计算机程序设计艺术》,这套书非常值得一看

许多人致力于计算机科学中的问题求解,实际上这正是该领域吸引人的地方。

《如何求解问题》(曹宏庆.中国水电出版社)是提高问题求解能力的经典著作

教学后记

 

教学专题——数据结构的基本概念

2-30

教学专题

数据结构的基本概念

授课学时

1.4学时(70分钟)

教学章节

1.3

授课对象

计算机学科各专业本科生

教学类型

理论课

授课形式

课堂讲授

教学重点

数据结构及相关概念;数据的逻辑结构和存储结构之间的关系

教学难点

数据元素;逻辑关系;抽象数据类型

教学内容

教学目标

知识点

学习要求

了解

理解

掌握

熟练掌握

数据、数据项、数据对象

数据元素

数据结构

数据的逻辑结构

数据的存储结构

逻辑结构和存储结构之间的关系

数据结构的访问接口

抽象数据类型

教学过程

课程引入:

根据生活中的实例简单理解什么是数据结构

3分钟

1.给出数据的定义,举例说明什么是数据

2.给出数据元素和数据项的定义,根据上一讲得个例子体会如何界定数据元素,总结数据、数据元素、数据项之间的关系

3.给出数据结构的定义,从问题求解的角度强调数据结构包含逻辑结构和存储结构两个方面

4.给出逻辑结构的定义重点解释逻辑关系

5.给出存储结构的定义,重点强调如何表示逻辑关系

6.从数据表示的角度总结逻辑结构和存储结构的关系

7.在理解数据类型抽象的基础上,给出抽象数据类型的定义,说明:

数据模型+一组操作=ADT

8.结合抽象数据类型的定义说明数据结构的访问接口

5分钟

8分钟

6分钟

10分钟

15分钟

5分钟

10分钟

5分钟

课程总结:

数据的逻辑结构、存储结构及其相互关系

3分钟

教学提示

1.注意对基本概念的引入和阐述,抓住要点,注意用生活中的实例进行类比逻辑

2.关系较抽象、较难理解,通过实例在具体数据模型中理解逻辑关系

3.抽象数据类型是贯穿课程始终的概念,不要求学生开始就深刻理解,在后续的课程中反复应用抽象数据类型的三个视图—同心圆式的教学方法

媒体使用

多媒体课件:

用动画实现存储结构;用动画辅助解释基本概念

教学网络平台:

相关教学材料

思考题

课后导读

[美]WilliamFord,WilliamTopp著,刘卫东,沈官林译,数据结构C++语言描述,清华大学出版社,第3章抽象数据类型和类和第7章形式数据类型

教学后记

 

教学专题——算法的基本概念

3-1+30

教学专题

算法的基本概念

授课学时

1.6学时(80分钟)

教学章节

1.3

授课对象

计算机学科各专业本科生

教学类型

理论课

授课形式

课堂讲授

教学重点

算法的定义及特性;伪代码描述算法

教学难点

算法的特性;伪代码描述算法

教学内容

教学目标

知识点

学习要求

了解

理解

掌握

熟练掌握

算法及算法的特性

算法和程序的关系

算法的描述方法—自然语言

算法的描述方法—程序流程图

算法的描述方法—程序设计语言

算法的描述方法—伪代码

用C++语言中的函数描述算法

教学过程

课程引入:

根据生活中的实例简单理解什么是算法

5分钟

1.给出算法的定义,从使用的角度讲解算法的特性

2.提出问题:

算法=程序?

指出程序设计的核心是算法

3.分别用自然语言、程序设计流程图和C++语言举例描述算法,从应用角度介绍优点、缺点、使用方法、注意事项

4.综合自然语言、程序设计流程图和C++语言描述算法的优缺点,给出伪代码描述,反映伪代码描述的优势

5.介绍用C++语言中的函数描述算法,强调用伪代码和C++描述算法是两种抽象级别,体现了抽象分级的思想

6.课堂练习用伪代码描述算法

10分钟

5分钟

20分钟

12分钟

15分钟

8分钟

课程总结:

算法的定义和描述方法;算法与程序的关系

5分钟

教学提示

1.算法特性要讲清楚透彻,从应用的角度讲解每一个特性的含义,其用途在于判断一个算法在形式上是否正确

2.伪代码描述算法比较灵活,但掌握存在难度,应先从框架上理解,再通过事例掌握基本方法

3.强调算法的作用,是不能直接执行的

媒体使用

多媒体课件:

用动画辅助解释基本概念

教学网络平台:

相关教学材料

思考题

课后导读

《计算与算法导论》章小莉等译,电子工业出版社。

关于如何设计一个好的算法请阅读第2章和第8章

教学后记

 

教学专题——算法及算法分析

3-2

教学专题

算法及算法分析

授课学时

1学时(50分钟)

教学章节

1.4

授课对象

计算机学科各专业本科生

教学类型

理论课

授课形式

课堂讲授

教学重点

用大O记号表示算法的时间

教学难点

算法分析的方法;用大O记号表示算法的时间性能

教学内容

教学目标

知识点

学习要求

了解

理解

掌握

熟练掌握

度量算法效率的方法—事后度量

度量算法效率的方法—事前估算

算法分析的目的

问题规模、基本语句

大O记号

估算算法时间复杂度的基本方法

最好、最坏、平均情况时间性能

教学过程

课程引入:

通过复习数据结构和算法的基本概念引出本讲内容

5分钟

1.提出问题:

什么是算法分析?

为什么要进行算法分析?

指出算法分析的目的决定了算法分析的方法

2.给出事后度量方法并指出该方法的局限性,引出事前估算的度量方法

3.根据一个算法实例给出算法分析的方法

4.给出问题规模和基本语句概念,从不同角度讲解大O记号

5.结合顺序查找算法,分析最好、最坏、平均情况的时间性能

6.说明空间复杂度的分析方法

5分钟

3分钟

15分钟

10分钟

5分钟

5分钟

课程总结:

算法分析的事前估算方法;用大O记号表示算法的时间性能

2分钟

教学提示

1.注意讲授算法分析过程中的思维变换

2.深刻理解大O记号的含义

媒体使用

多媒体课件:

用动画给出算法分析方法的过程;再用板书总结

教学网络平台:

相关教学材料

思考题

课后导读

《算法分析导论》冯舜玺译,机械工业出版社。

关于算法分析较深入的讨论见

第1章算法分析概述

教学后记

 

教学专题——线性表

(一)

4

教学专题

1.线性表的逻辑结构

2.线性表的顺序存储结构

授课学时

2学时(100分钟)

教学章节

2.1、2.2

授课对象

计算机学科各专业本科生

教学类型

理论课

授课形式

课堂讲授

教学重点

线性表的定义;线性表的逻辑特征;顺序表的存储特点;顺序表的基本操作

教学难点

线性表的抽象数据类型定义;用伪代码描述算法,描述顺序表的基本操作

教学内容

教学目标

知识点

学习要求

了解

理解

掌握

熟练掌握

线性表的定义

线性表的逻辑特征

线性表的抽象数据类型定义

线性表的基本操作

顺序表的存储特点

顺序表类

顺序表的基本操作

顺序表的插入、删除操作的时间性能

顺序表的优缺点

教学过程

课程引入:

通过几个二维表的实例

3分钟

1.给出线性表的定义,总结线性表的逻辑特性

2.复习ADT的三个视图(定义视图、设计视图、实现视图)

3.给出线性表的抽象数据类型定义

4.给出顺序表的存储示意图,总结存储特点

5.复习存储地址的有关内容,给出顺序表的随机存取特性

6.顺序表类的声明、构造函数、析构函数

7.给出顺序表插入操作的执行过程,写出伪代码,再写出C++描述

8.分析插入算法的时间性能,总结算法分析的一般步骤

9.对于顺序表的删除操作,给出必要的提示,要求学生自行完成

10.给出顺序表的查找操作的执行过程和算法

11.总结顺序表的优缺点

10分钟

5分钟

7分钟

10分钟

10分钟

15分钟

15分钟

5分钟

3分钟

7分钟

5分钟

课程总结:

线性表的逻辑结构;顺序表的存储特点和基本操作

5分钟

教学提示

1.线性表的定义要讲清楚透彻,向学生渗透一种理解概念的方法—问题分析、抓住要点、引申理解

2.通过线性表抽象数据类型进一步理解抽象数据类型的三个视图,理解模块化思想,掌握其使用方法

3.从实用角度出发复习C++语言相关知识

4.对于顺序表的基本操作算法,要讲思路、讲方法、讲过程,注意培养抽象思维能力和逻辑思维能力。

媒体使用

多媒体课件:

用动画辅助解释基本概念和模拟顺序表类的基本操作的执行过程

教学网络平台:

相关教学材料

思考题

课后导读

《数据结构(C语言版)》严蔚敏编著,清华大学出版社。

参阅相关章节:

关于线性表的定义采用二元组的形式

《数据结构与算法》齐德昱编著,清华大学出版社。

参阅相关章节:

注意顺序表的实现与本教材不同

教学后记

 

教学专题——线性表

(二)

5

教学专题

线性表的链接存储结构及实现

授课学时

2学时(100分钟)

教学章节

2.3、2.4

授课对象

计算机学科各专业本科生

教学类型

理论课

授课形式

课堂讲授

教学重点

单链表的存储特点;单链表的基本操作的算法及时间性能

教学难点

单链表查找、插入和删除算法

教学内容

教学目标

知识点

学习要求

了解

理解

掌握

熟练掌握

单链表的存储要点及存储特点

单链表类

单链表的顺序存取特性

单链表的插入、删除操作

单链表插入、删除操作的时间性能

单链表类的构造函数和析构函数

顺序表和单链表的比较

教学过程

课程引入:

通过分析顺序表的缺点引出链接存储结构

5分钟

1.根据一个实例给出线性表链接存储的实际内存状态,复习C++语言中指针的相关知识,抽象出单链表的存储结构示意图

2.区分指针变量和结点变量,说明头指针、头结点和尾指针

3.给出单链表类的声明,引申单链表类与顺序表类的关系

4.给出单链表查找的算法,总结单链表算法的设计模式

5.设计单链表的插入算法,分析时间性能

6.比较带头结点和不带头结点的单链表上的插入操作

7.设计单链表的删除算法,注意分析边界情况

8.对单链表类的构造函数,给出头插法和尾插法的算法

9.对单链表类的析构函数,给出必要的提示,要求学生自行完成

20分钟

10分钟

5分钟

10分钟

15分钟

10分钟

5分钟

12分钟

3分钟

课程总结:

将顺序表和单链表进行比较,总结并比较存储结构及实现方法

5分钟

教学提示

1.熟练使用指针是学好单链表的基本前提

2.单链表算法设计的关键是多练,安排一节习题课是非常必要的,如果学时较紧,至少通过课堂对相关作业进行点评

媒体使用

多媒体课件:

用动画模拟单链表各种操作的执行过程

教学网络平台:

相关教学材料

思考题

课后导读

《数据结构与算法》齐德昱编著,清华大学出版社。

参阅相关章节:

注意单链表表的实现与本教材不同

教学后记

 

教学专题——线性表(三)

6

教学专题

1.线性表的其它存储方法

2.线性表的应用举例

授课学时

2学时(100分钟)

教学章节

2.5及课后思考题和习题

授课对象

计算机学科各专业本科生

教学类型

理论课

授课形式

课堂讲授

教学重点

循环链表、双链表

教学难点

双链表的基本操作

教学内容

教学目标

知识点

学习要求

了解

理解

掌握

熟练掌握

循环链表的存储结构

循环链表的操作

双链表的存储结构

双链表的基本操作

静态链表的存储结构

静态链表的操作

间接寻址存储结构

约瑟夫环问题描述

设计算法求解约瑟夫环问题

教学过程

课程引入:

通过提出问题:

在单链表中如何查找某结点的前驱?

2分钟

1.将循环链表的插入算法与单链表的插入算法进行比较

2.在有头结点的循环链表中,如何查找第1个结点和最后1个结点,引出带尾指针的循环链表

3.如何更快速得到某结点的前驱(空间换时间),引出双链表

4.通过图示理解双链表的插入和删除操作,给出算法

5.如何通过连续存储实现连接关系,引出静态链表

6.通过图示理解静态链表的插入和删除操作过程

7.提出问题:

将数组和指针结合起来存储线性表会怎样?

引出间接寻址

8.通过图示理解间接存储结构上如何实现插入和删除操作,并与顺序表进行比较

9.给出约瑟夫环问题的描述,介绍该问题的起源

10.从逻辑上理解约瑟夫环问题的求解过程

11.分别用顺序存储结构和单链表存储结构实现约瑟夫环问题

12.其它问题或习题举例

8分钟

5分钟

5分钟

10分钟

5分钟

15分钟

5分钟

5分钟

5分钟

5分钟

20分钟5分钟

课程总结:

线性表的各种逻辑结构;线性表的存储特点和基本操作

5分钟

教学提示

1.循环链表和双链表是单链表的变形

2.静态链表和间接寻址是顺序存储和连接存储相结合的产物

3.重点在于灵活设计各种存储结构的思想

4.通过例题检验学生掌握线性表及其存储结构的教学效果。

媒体使用

多媒体课件:

用动画模拟算法和示例的执行过程,用动画辅助解释基本概念

教学网络平台:

相关教学材料

思考题

课后导读

《数据结构—C++实现》穆淮扣等编著,科学出版社。

参阅相关章节:

关于双链表的实现

上网查找约瑟夫环及其变形问题的解决方法,完成关于该问题的课程作业

教学后记

 

教学专题——栈

7

教学专题

授课学时

2学时(100分钟)

教学章节

3.1、3.4.1

授课对象

计算机学科各专业本科生

教学类型

理论课

授课形式

课堂讲授

教学重点

栈的操作特性、顺序栈及实现、链栈及实现

教学难点

两栈共享空间

教学内容

教学目标

知识点

学习要求

了解

理解

掌握

熟练掌握

栈的定义及操作特性

栈的抽象数据类型定义

顺序栈及实现

两栈共享空间

链栈及实现

顺序栈和链栈的比较

顺序栈应用举例

教学过程

课程引入:

通过复习线性表的插入和删除操作引出栈

5分钟

1.给出栈的定义,通过实例说明栈的操作特性

2.根据顺序栈存储示意图给出入栈和出栈算法,分析时间性能。

总结:

顺序栈算法是顺序表算法的简化

3.如何提高栈空间的利用率?

引出两栈共享空间算法

4.复习单链表,如何改造成链栈?

5.根据链栈存储示意图给出入栈和出栈算法,分析时间性能。

总结:

链栈算法是单链表算法的简化

6.回顾顺序表和单链表的比较方法,引导学生得出顺序栈和链栈的比较结果

7.给出递归的定义,结合具体实例说明递归是一种描述问题和解决问题的基本方法

8.递归问题举例

9.给出描述递归函数运行轨迹的图示方法,强调递归的层次

10.总结递归函数,强调注意事项

10分钟

15分钟

25分钟

2分钟

15分钟

3分钟

5分钟

5分钟

5分钟5分钟

课程总结:

栈的操作特性;栈的基本操作和栈的应用

5分钟

教学提示

1.栈是计算机技术及程序设计中常用的数据结构之一,熟练掌握对后续学习有益

2.根据生活实例深刻理解栈的操作特性,并与线性表进行比较

3.从实用角度出发复习C++语言递归知识

4.通过递归函数的运行轨迹,引导学生理解递归的调用层次以及实参和形参的结合方法,及程序运行过程中工作栈的变化

媒体使用

多媒体课件:

用动画辅助解释基本概念和模拟各操作的执行过程

教学网络平台:

相关教学材料

思考题

课后导读

《数据结构与算法》齐德昱编著,清华大学出版社。

参阅相关章节:

注意用抽象类和继承类实现栈

《数据结构》刘大友等编著,高等教育出版社,相关章节对递归和汉诺塔问题进行了较深入的介绍

教学后记

 

教学专题——队列

8

教学专题

队列

授课学时

2学时(100分钟)

教学章节

3.2、3.4.2

授课对象

计算机学科各专业本科生

教学类型

理论课

授课形式

课堂讲授

教学重点

队列的操作特性、循环队列及实现、链队列及实现

教学难点

循环队列的存储方法及队空和队满的判断

教学内容

教学目标

知识点

学习要求

了解

理解

掌握

熟练掌握

队列的定义及操作特性

队列的抽象数据类型定义

顺序队列的假溢出现象

循环队列及实现

链队列及实现

循环队列和链队列的比较

队列的应用举例

教学过程

课程引入:

通过复习线性表和栈的插入、删除操作引出栈

5分钟

1.给出队列的定义,通过实例说明队列的操作特性

2.如何存储?

引出队列的顺序存储和链接存储

3.假溢出问题?

改造顺序表,得出循环队列的存储方法

4.如何判断队空和队满?

分析各种解决方案

5.如何改造单链表实现队列的链接存储

6.链式队列的出队算法需注意边界情况(判断队空)

7.引导学生比较循环队列和链式队列

8.队列问题应用举例

10分钟

5分钟

25分钟

15分钟

10分钟

15分钟

5分钟

5分钟

课程总结:

队列的操作特性;队列的基本操作和队列的应用

5分钟

教学提示

1.队列是程序设计中常用的数据结构之一,熟练掌握对后续学习有益

2.根据

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2