新版数据结构教案Word文档格式.docx

上传人:b****6 文档编号:20270411 上传时间:2023-01-21 格式:DOCX 页数:66 大小:42.99KB
下载 相关 举报
新版数据结构教案Word文档格式.docx_第1页
第1页 / 共66页
新版数据结构教案Word文档格式.docx_第2页
第2页 / 共66页
新版数据结构教案Word文档格式.docx_第3页
第3页 / 共66页
新版数据结构教案Word文档格式.docx_第4页
第4页 / 共66页
新版数据结构教案Word文档格式.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

新版数据结构教案Word文档格式.docx

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

新版数据结构教案Word文档格式.docx

核心地位

2.课程学习目标

(1)学习知识角度

(2)培养能力角度

3.介绍教材:

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

4.介绍参考文献资料:

多角度、全方位学习

5.介绍网络教学资源:

6.学习方法及要求

(1)坚持上课

(2)学会读书:

预习+复习+拓展

(3)认真作业和实验

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

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

7.考核要求:

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

15分钟

 

3分钟

10分钟

2分钟

课程总结:

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

教学提示

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

2.明确课程目标:

学些什么,达到的目标

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

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

5.考研

思考题

课后导读

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

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

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

教学后记

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

1-2

数据结构的兴起和发展

1.1、1.2

抽象与数据类型;

数据结构的研究对象

数据结构与类的对应关系

教学目标

知识点

学习要求

了解

理解

掌握

熟练掌握

程序设计的性质

数据结构的起源和发展

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

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

数据结构的研究对象

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

了解历史—专业素养

1.提出问题:

程序设计的实质是什么?

通过具体实例得出答案

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

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

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

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

12分钟

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

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

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

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

媒体使用

多媒体课件:

Kunth的照片及介绍;

用动画辅助解释基本概念

教学网络平台:

相关教学材料

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

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

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

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

2-30

数据结构的基本概念

1.4学时(70分钟)

1.3

数据结构及相关概念;

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

数据元素;

逻辑关系;

抽象数据类型

数据、数据项、数据对象

数据元素

数据结构

数据的逻辑结构

数据的存储结构

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

数据结构的访问接口

抽象数据类型

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

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

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

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

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

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

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

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

数据模型+一组操作=ADT

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

8分钟

6分钟

5分钟

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

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

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

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

用动画实现存储结构;

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

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

3-1+30

算法的基本概念

1.6学时(80分钟)

算法的定义及特性;

伪代码描述算法

算法的特性;

算法及算法的特性

算法和程序的关系

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

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

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

算法的描述方法—伪代码

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

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

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

2.提出问题:

算法=程序?

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

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

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

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

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

20分钟

8分钟

算法的定义和描述方法;

算法与程序的关系

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

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

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

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

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

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

3-2

算法及算法分析

1.4

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

算法分析的方法;

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

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

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

算法分析的目的

问题规模、基本语句

大O记号

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

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

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

1.提出问题:

什么是算法分析?

为什么要进行算法分析?

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

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

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

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

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

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

算法分析的事前估算方法;

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

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

用动画给出算法分析方法的过程;

再用板书总结

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

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

第1章算法分析概述

教学专题——线性表

(一)

4

1.线性表的逻辑结构

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

2学时(100分钟)

2.1、2.2

线性表的定义;

线性表的逻辑特征;

顺序表的存储特点;

顺序表的基本操作

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

用伪代码描述算法,描述顺序表的基本操作

线性表的定义

线性表的逻辑特征

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

线性表的基本操作

顺序表的存储特点

顺序表类

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

顺序表的优缺点

通过几个二维表的实例

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

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

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

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

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

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

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

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

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

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

11.总结顺序表的优缺点

10分钟

7分钟

15分钟

线性表的逻辑结构;

顺序表的存储特点和基本操作

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

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

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

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

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

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

参阅相关章节:

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

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

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

教学专题——线性表

(二)

5

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

2.3、2.4

单链表的存储特点;

单链表的基本操作的算法及时间性能

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

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

单链表类

单链表的顺序存取特性

单链表的插入、删除操作

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

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

顺序表和单链表的比较

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

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

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

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

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

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

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

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

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

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

20分钟

5分钟

12分钟

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

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

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

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

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

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

6

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

2.线性表的应用举例

2.5及课后思考题和习题

循环链表、双链表

双链表的基本操作

循环链表的存储结构

循环链表的操作

双链表的存储结构

双链表的基本操作

静态链表的存储结构

静态链表的操作

间接寻址存储结构

约瑟夫环问题描述

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

通过提出问题:

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

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

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

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

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

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

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

7.提出问题:

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

引出间接寻址

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

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

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

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

12.其它问题或习题举例

8分钟

20分钟5分钟

线性表的各种逻辑结构;

线性表的存储特点和基本操作

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

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

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

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

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

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

关于双链表的实现

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

教学专题——栈

7

3.1、3.4.1

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

两栈共享空间

栈的定义及操作特性

栈的抽象数据类型定义

顺序栈及实现

两栈共享空间

链栈及实现

顺序栈和链栈的比较

顺序栈应用举例

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

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

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

总结:

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

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

引出两栈共享空间算法

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

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

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

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

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

8.递归问题举例

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

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

25分钟

2分钟

3分钟

5分钟5分钟

栈的操作特性;

栈的基本操作和栈的应用

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

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

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

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

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

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

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

教学专题——队列

8

队列

3.2、3.4.2

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

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

队列的定义及操作特性

队列的抽象数据类型定义

顺序队列的假溢出现象

循环队列及实现

链队列及实现

循环队列和链队列的比较

队列的应用举例

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

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

2.如何存储?

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

3.假溢出问题?

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

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

分析各种解决方案

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

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

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

8.队列问题应用举例

队列的操作特性;

队列的基本操作和队列的应用

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

2.根据

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

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1