数据结构——基于Python语言(微课版)教学教案.docx
《数据结构——基于Python语言(微课版)教学教案.docx》由会员分享,可在线阅读,更多相关《数据结构——基于Python语言(微课版)教学教案.docx(129页珍藏版)》请在课桌文档上搜索。
1、教案课程名称适用专业院(部)教研室授课教师数据结构智能科学与技术计算与信息科学学院计算机系副教授课程名称数据结构学分3总计:48学时讲授:48学时上机:。学时实验/训:0学时其它:。学时类别(请打J)公共课口公共选修课回专业基础课专业必修课专业方向选修课口实验实训课(仅限本科)公共课公共选修课口专业基础课口专业必修课口专业选修课口实验实训课(仅限高职)授课对象(请打J)回本科高职其他使用教材参考资料教材:马宏茹,吴璞,姚保峰.数据结构M.山东:中国矿业大学出版社,2022参考书:1 .严蔚敏.数据结构(C语言版)M.北京:清华大学出版社,20072 .马世霞.数据结构M.北京:机械工业出版社,
2、20153,自编.数据结构实验指导书.福州:福州理工学院,20194.近期的期刊杂志、网站以及参考文献等教学方法教学手段课堂教学以网络视频观看、理论课讲授和实验操作实践的线上线下混合式进行,教师针对课程重点难点讲解数据结构的基本原理和知识,预先安排教学视频学习,然后再较系统地介绍软件设计中常用的数据结构以及相应的存储结构和实现算法;介绍常用的多种查找和排序技术,并对进行性能分析和比较,内容非常丰富。让学生明白该门课程将为后续课程的学习以及软件设计水平的提高的重要性,说明数据结构课程是计算机专业的一门核心的关键性课程,提高学生的学习兴趣和积极性。还采用启发式、交互式和讨论式的教学方法引导学生掌握
3、获取所学知识,通过布置相关实验报告,培养学生的自学和编程能力。考核方式考核要求:期末总成绩=笔试(闭卷60%)+平时成绩(40%)平时成绩包括(线上学习:章节任务点(30%)+章节测验&作业(20%);线下学习:分组任务(30%)+课堂表现(20%)内容比例(建议):线性表30%;树15%;图15%;查找20%;排序20%题型比例(建议):选择题20%,填空题30%,简答题30%,编程题20%学生创新精神与实践能力的培养方法采用启发式、交互式和讨论式的教学方法引导学生掌握获取所学知识,通过布置相关实验报告,培养学生的自学和编程能力。数据结构课程教案授课时间第1周授课方式(请打Y)团讲授口上机口
4、实验/训I其它(讨论交流)课时安排授课题目:TL绪论(C语言基础)教学目的与要求:C语言基础:输入与输出、结构、指针、动态存储分配教学重点与难点:重点:结构、指针难点:指针、动态存储分配教学内容备注1:C语言基础结构2:输入与输出3:指针4:结构5:动态存储分配案(末页)一.VisualC+6.0开发环境VisualC+6.0是微软公司推出的一个功能强大的可视化软件开发工具。VisualC+6.0不仅是一个C、C+编译器,它还有一个非常好的集成开发环境DeveloperStudio,包括编辑器编译器、调试器以及程序向导等组件,用它可以在编写C、C+程序时对程序的结构进行可视化的管理。二.C语言
5、代码结构1.说明1)以#开始的语句是预处理命令。这些命令是在编译系统翻译代码之前需要由预处理程序处理的语句。2) /*/表示注释部分,不运行;3) main()表示主函数,函数体由一对大括号扩起来。4)第2行Printf是C语言的标准输出函数;5)分号“;”是C语言的执行语句和说明语句的结束符。6 )n为回车换行,引号中其它内容作为字符串原样输出。7 .格式特点1)习惯用小写字母,大小写敏感2)不使用行号,无程序行概念3)可使用空行和空格4)常用锯齿形书写格式8 .优秀程序员的素质之一:1)使用TAB缩进2) 对齐3)有足够的注释4)有合适的空行三.输入与输出1.格式输出函数1)格式:Prim
6、fr格式控制串”,输出表)2)功能:按指定格式向显示器输出数据3)返值:正常,返回输出字节数;出错,返回EOF(J)2.格式输入函数1)格式:SCanf(格式控制串”,地址表)2)功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束3)返值:正常,返回输入数据个数四.指针1 .指针与指针变量1)指针:一个变量的地址2)指针变量:专门存放变量地址的变量2 .&与*运算符1) &:取变量的地址,单目运算符,结合性:自右向左2) *:取指针所指向变量的内容,单目运算符,结合性:自右向左3)两者关系:互为逆运算五.结构1.语法:struct结构名数据成员列表;(变量名表列);2
7、.指向结构的指针3 .访问结构变量的数据成员4 .用typcdef定义新数据1)将int型定义为COUNT,这二者等价,在程序中就可以用COUNT作为类型名来定义变量,如:COUNTa,b;2)因此,可用typedef来定义一个类型名来代表一个结构体类型六.函数与参数传递1 .C语言中函数定义包括4个部分:函数首部(函数名、形参列表、返回类型)和函数体2 .在C语言中调用函数时传递给形参表的实参必须与形参在类型、个数、顺序上保持一致3 .参数传递有两种方式:1)按值传递方式:把实参的值传递给函数局部工作区相应的副本中。函数使用副本执行必要的计算。因此函数实际修改的是副本的值,实参的值不变。2)
8、按地址传递参数:传递的是实参的地址。函数通过地址存取被引用的实参。执行函数调用后,实参的值将发生改变。4 .函数结果的带出方式1)如果返回一个结果值,可以使用return返回方式带出一个函数结果值2)若函数结果需要带出多个值,该怎样实现?3)全局变量方式带出4)通过地址传递带出(数组方式、结构体方式、指针方式)两类方式之一来实现。七.动态存储分配1 .malloc()和free()2 .静态数组与动态数组的区别1)静态数组是在定义是就已经在栈上分配了空间大小,在运行时这个大小不能改变2)动态数组的大小是在运行是给定,即,运行时在堆上分配定的存储空间,同时运行时还可以改变其大小推荐阅读书目:(1
9、)马世俊.数据结构.机械工业出版社,2015(2)自编.数据结构实验指导书.福州理工学院.2019(3)近期的期刊杂志、网站以及参考文献等数据结构课程教案授课时间第1周授课方式(请打Y)团讲授口上机口实验/训I口其它(讨论交流)课时安排1授课题目:T2绪论教学目的与要求:1:学习数据结构的概念2:学习算法的基本概念3:了解数据结构与算法在程序设计中的作用教学重点与难点:重点:数据结构的内容、时间复杂度难点:逻辑结构与物理结构的联系与区别、时间复杂度教学内容备注1:数据结构的基本概念:(1):线性表(2):栈与队列(3):树和图2:算法:(1):查找(2):排序3:C语言基础:(1):输入与输出
10、(2):结构(3):指针(4):动态存储分配案(末页)一.数据结构与算法的关系NiklausWirth(美国):算法+数据结构=程序设计程序设计:为计算机处理问题编制一组指令集算法:处理问题的策略(怎么解决?)数据结构:问题的数学模型(数据怎么表示?)例子:求一组(n个)整数中的最大值。算法:通过依次比较两个数的大小,找到最大值数据结构(模型):用什么样的数据结构来表示整数?二.数据结构的基本概念1.数据数据是描述客观事物的数值、字符以及能输入机器且能被处理的各种符号集合。包含数值、字符、声音、图像等一切可以输入到计算机中的符号集合。例如对C源程序C编译程序源探序(.c)C链接方片.目标程序可
11、执行程片(.obj)(.exe)2.数据元素数据元素是组成数据的基本单位,是数据集合的个体,在计算机中通常作为一个整体进行考虑和处理。例如:WfMI学号姓名性别籍贯出生年月住址IOl赵虹玲女河北1983.11北京3 .数据对象数据对象是性质相同的数据元素的集合,是数据的一个子集。例如:整数集合:N=0,1,2,.)无限集字符集合:C=A,B,Z有限集4 .数据结构数据结构是指相互之间存在一种或多种特定关系的数据元素集合,是带有结构的数据元素的集合,它指的是数据元素之间的相互关系,即数据的组织形式。例如表结构:5 .数据类型数据类型是一组性质相同的值集合以及定义在这个值集合上的一组操作的总称。数
12、据类型决定了两个方面的内容:取值范围一允许使用的一组运算.琏.鱼里的基击强提美娄,dw)6. 抽象数据类型(AbStraCtDataType-ADT)ADT定义了一个数据对象、数据对象中各元素间的结构关系以及组处理数据的操作。抽象数据类型与数据类型实质上是一个概念,只不过ADT更为广义,不仅限于各种不同计算机处理器中已定义并实现的数据类型,还包括用户自己定义的复杂数据类型。有两个重要特征:。数据抽象:强调程序处理的实体的本质特征、其所能完成的功能以及它和外部用户的接口(即外界使用它的方法)。:信息隐蔽:将实体的外部特征和其内部实现细节分离,并且对外部用户隐藏其内部实现细节。三.数据结构的内容数
13、据结构:带结构的数据元素的集合;数据元素间的相互关系包括三个方面:数据的逻辑结构、数据的物理结构、数据的运算集合逻辑结构例如:一个含12位数的十进制数可以用3个4位的十进数表示:1234,5678,90111(1234),2(5678),3(9011)。在a1,az和a3之间存在“次序”关系:*123456789011567812349011aa2a3a2na3数据结构的逻辑结构可归结为以下四类: :线性结构:LoC。树形结构:“OP :图形结构(网状结构):.一广口 :集合结构:逻辑结构也可归结为:广线性结构一一线性表、栈、队、字符串、数组、广义表逻辑结构YI非线性结构树、图物理结构反映成分
14、数据在计算机内的存储安排。逻辑结构在存储器中的映像。例如:用二进制位(bit)的位串表示数据元素(32i)10=(5i)=(Io100oooi)2X=(IOl)8=(001OOOOO1)2四.算法的基本概念是规则的有限集合,是为解决特定问题而规定的一系列操作。解决问题的一种方法或一个过程(策略)。特性: 有限性:有限步骤之内正常结束,不能形成无穷循环。 确定性:算法中的每一个步骤必须有确定含义,无二义性得以实现。 输入:有多个或O个输入。 输出:至少有一个或多个输出。 可行性:原则上能精确进行,操作可通过已实现基本运算执行有限次而完成。一个好的算法般应具有几个基本特征:1 .正确性2 .可读性
15、3 .健壮性(鲁棒性)4 .高效率与低存储量五.算法的性能评价1.耗费的时间T(n,I)算法性能C(n,I)1.占用的空间S3,D个算法的执行时间大致上等于其所有语句执行时间的总和,对于语句的执行时间是指该条语句的执行次数和执行一次所需时间的乘积。不是针对实际执行时间的精确地算出算法执行具体时间,而是针对算法中语句的执行次数做出估计,从中得到算法执行时间的信息。语句频度:指该语句在一个算法中重复执行的次数。例如:两个矩阵相乘算法语句对应的语句频度1for(i=0;in;i+)n2for(j=0;jn;j+)M3cilj=O;n:for(k=O;kn;k+)n3Wujlivlhfwi-j,总执行
16、次数:T,=2n3+2H2n时间复杂度:语句频度的数量级,算法的时间量度。T(n)=O(f(n)六.时间复杂度、语句频度练习数据结构中常用的时间复杂度频率计数有7个:O(I)常数型O(n)线性型0()平方型O(rP)立方型0(2指数型O(Iogzn)对数型O(nlog211)二维型按时间复杂度由小到大排列:O(I)常数型VO(Iog2n)对数型VO(n)线性型VO(nlog211)二维型0时,笫一个元素无直接前驱,最后一个元素无直接后继,其余的每个数据元素只有一个直接前驱和一个直接后继。 n=0时,为空表。 表长:表中元素的个数n。 表中元素类型相同。二.顺序表: 指用一组地址连续的存储单元依
17、次存储线性表中的各个元素 数据元素:逻辑结构相邻=物理存储单元相邻 结构定义#definemaxsize100线性表可能达到的最大长度typedefstruct(ElemTypeelemmaxsize;线性表占用的数组空间intlast;记录线性表中最后一个元素在数组elem中的位置(下标值),空表置为SeqList;一一注意区分元素的序号和数组的下标,如al的序号为1,而其对应的数组下标为0。基本运算_查找按序号查找GetData(LJ):-要求查找线性表L中第i个数据元素L.elemi-lsKL-elemi-l按内容查找LOCate(L,e):-要求查找线性表L中与给定值e相等的数据元素-
18、若在表L中找到与e相等的元素,则返回该元素在表中的序号;若找不到,则返回一个“空序号”,如插入引列:已知线性表(4,9,15,28,30,30,42,51,62),需在第4个元素之前插入一个元素“21”。序号123456-8910插入元素前4915283030425162插入元素后491521283030425162需要将第9个位置到第4个位置的元素依次后移一个位置,然后将“21”插入到第4个位置,序号123456-8910491528I30I30425162移动元素4915283030425162插入元素491521283030425162删除 引例:将线性表(4,9,15,21,28,30
19、,30,42,51,62)中的第5个元素删除。序号123456-8910491521283030425162删除28后4915213030425162一一合并 引例:已知有两个顺序表LA和LB,其元素均为非递减有序排列,编写一个算法,将它们合并成一个顺序表LC,要求LC也是非递减有序排列。la0821254962LB163754728290下标:01234Ol23451.C0816212537495462728290下标:012345678910推荐阅读书目:(1)马世霞.数据结构.机械工业出版社,2015(2)自编.数据结构实验指导书.福州理工学院.2019(3)近期的期刊杂志、网站以及参考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 基于 Python 语言 微课版 教学 教案

链接地址:https://www.desk33.com/p-1185999.html