1教学单元(章节):第一章:绪论1.1数据结构概念教学目的:理解学习数据结构的重要意义掌握数据结构的基本概念知识要点:数据结构、逻辑结构、物理结构、算法4种数据的存储结构、程序与数据结构技能要点:数据结构、4种基本的数据结构、4种数据的存储结构教学方法:讲授+演示教具及教学手段:投影作业布置情况:P11;1、2课后分析与小结:本节课的重点:数据结构有关概念和术语难点:学习数据结构的意义审批:教研室主任(签字)年月日抽查:系部主任(签字)年月日2教学内容及过程板书或旁注第一章:绪论1.1数据结构概念1.1.1为什么要学习数据结构1.计算机处理问题的分类(1)数值计算问题(2)非数值性问题2.非数值问题求解算法+数据结构=程序数据结构:是指数据的逻辑结构和存储结构算法:是对数据运算的描述1.1.2有关概念和术语数据数据元素数据项数据结构:集合、线性、树型、图状数据结构:包括物理结构、逻辑结构数据的四种基本存储方法(1)顺序存储方法(2)链接存储方法(3)索引存储方法(4)散列存储方法3教师授课教案教学单元(章节):第一章:绪论1.2算法描述1.3算法分析教学目的:理解算法的定义、特性、描述方法掌握简单的时间复杂度的估计知识要点:算法的特性、描述方法、算法编制的质量要求、数据结构的基本操作、时间复杂度、空间复杂度、技能要点:描述算法、分析简单算法的时间复杂度教学方法:讲授+演示教具及教学手段:投影作业布置情况:P11;3、4课后分析与小结:本节课的重点:算法的特点和描述,算法分析难点:算法时间复杂度的估计审批:教研室主任(签字)年月日抽查:系部主任(签字)年月日4教学内容及过程板书或旁注第一章:绪论1.2算法描述1.2.1算法特性(1)有穷性(2)确定性(3)可行性(4)输入(5)输出好的算法的特点(1)正确(2)可读(3)健壮(4)高效数据结构的基本操作:(1)查找(2)读取(3)插入(4)删除(5)修改1.2.2算法描述算法描述的种类:(1)框图/流程图算法(2)非形式算法(3)伪语言算法(4)高级语言算法1.3算法分析时间复杂度:解决某问题所花费的时间大小,即程序运行从开始到结束所需要的时间,记为T(n)空间复杂度:解决某问题的程序完全运行时所占用的存储空间大小,记为S(n)【例】算法MatrixMultidy的时间复杂度T(n)如(1.1)式所示,当n趋向无穷大时,显然有5教师授课教案教学单元(章节):C语言第七章:数组7.1一维数组的定义和引用7.2二维数组的定义和引用7.3字符数组教学目的:理解一维数组、二维数组、字符数组的定义掌握一维数组、二维数组、字符数组的引用和初始化方法掌握一维数组、二维数组、字符数组的简单应用程序知识要点:一维数组、二维数组、字符数组的定义、引用、初始化一维数组、二维数组、字符数组相关的简单程序技能要点:用数组来处理相关问题的程序教学方法:讲授+演示教具及教学手段:投影作业布置情况:P152;7.1P152;7.3P153;7.11P153;7.15课后分析与小结:本节重点:数组的定义、引用、初始化本节难点:用数组求解简单的问题审批:教研室主任(签字)年月日抽查:系部主任(签字)年月日6教学内容及过程板书或旁注第七章数组7.1一维数组的定义和引用7.1.1一维数组的定义7.1.2一维数组的引用7.1.3一维数组的初始化7.1.4一维数组程序举例7.2二维数组的定义和引用7.2.1二维数组的定义7.2.2二维数组的引用7.2.3二维数组的初始化7.2.4二维数组程序举例7.3字符数组7.3.1字符数组的定义7.3.2字符数组的初始化7.3.3字符数组的引用7.3.5字符数组的输入输出7教师授课教案教学单元(章节):C语言第十章:指针10.1地址和指针的概念10.2变量的指针和指针变量教学目的:理解地址和指针的概念掌握指针变量的定义和引用知识要点:地址、指针、指针变量的定义和引用、指针变量作为函数参数技能要点:指针变量的定义和引用指针变量作为函数参数教学方法:讲授+演示教具及教学手段:投影作业布置情况:P278;10.1P278;10.2课后分析与小结:本节重点:指针的含义、指针变量的引用本节难点:指针变量的引用、指针变量作为函数参数审批:教研室主任(签字)年月日抽查:系部主任(签字)年月日8教学内容及过程板书或旁注C语言第十章:指针10.1地址和指针的概念1.地址的概念2.指针的概念10.2变量的指针和指针变量10.2.1定义一个指针变量1.定义指针变量的一般形式:基类型*指针变量名2.定义指针变量的注意事项10.2.2指针变量的引用1.&——取址运算符。2.*——指针运算符,10.2.3指针变量作为函数参数(1)使一个指针变量指向另一个变量(2)通过指针变量访问整型变量9教师授课教案教学单元(章节):C语言第十章:指针10.3.1指向数组元素的指针10.3.2通过指针引用数组元素10.4.1字符串的表现形式10.8指针运算小结教学目的:掌握通过指针引用数组元素理解字符串的表现形式掌握指针的相关运算知识要点:数组与指针、字符串与指针、指针运算技能要点:通过指针引用数组元素、字符串的表现形式指针的各种运算教学方法:讲授+演示教具及教学手段:投影作业布置情况:P279;10.6P279;10.9课后分析与小结:本节重点:指针运算、通过指针引用数组元素和字符串本节难点:通过指针引用数组元素、字符串审批:教研室主任(签字)年月日抽查:系部主任(签字)年月日10教学内容及过程板书或旁注10.3数组与指针10.3.1指向数组元素的指针定义一个指向数组元素的指针变量10.3.2通过指针引用数组元素数组元素的引用可以用1.下标法:a[i]2.指针法:*(a+i)或*(p+i)10.4字符串与指针10.4.1字符串的表现形式1.用字符数组存放一个字符串2.用字符指针指向一个字符串3.字符串常量和字符指针的初始化10.8指针运算小结10.8.1有关指针的数据类型的小结10.8.2指针运算小结1.指针变量的加减2.指针变量赋值3.指针变量的比较11教师授课教案教学单元(章节):C语言第十一章:结构体与共用体11.1-11.5.1结构体11.7.3处理动态链表所需的函数11.10用typedef定义类型教学目的:掌握结构体变量的定义、引用和初始化掌握处理动态链表所需的函数掌握用typedef定义类型知识要点:结构体变量、结构体数组,malloc函数calloc函数、free函数、typedef技能要点:结构体变量的定义、引用和初始化用typedef定义类型教学方法:讲授+演示教具及教学手段:投影作业布置情况:P318;11.1P318;11.5课后分析与小结:本节重点:结构体变量、处理动态链表所需的函数本节难点:结构体变量的引用和初始化、用typedef定义类型审批:教研室主任(签字)年月日抽查:系部主任(签字)年月日12教学内容及过程板书或旁注第十一章:结构体与共用体11.1概述11.2定义结构体类型变量的方法1.先定义结构体类型,再用类型标识去定义变量2.定义类型的同时定义变量3.直接定义结构体类型变量11.3结构体变量的引用1.结构体变量各成员的引用引用形式:结构体变量名.成员名2.结构体变量各成员的输入、输出11.4结构体变量的初始化11.5结构体数组1.结构体数组的定义2.结构体数组的初始化3.结构体数组stu的存储结构4.结构体数组的引用11.6指针与结构体1.指向结构体变量的指针2.指向结构体变量的指针与结构体变量的等价关系11.7用指针处理链表11.7.3处理动态链表所需的函数内存分配函数原型:void*malloc(unsignedsize);内存分配函数原型:void*calloc(unsignedsize);内存释放函数原形:voidfree(void*p);11.10用typedef定义类型1、使用的一般形式:typedef原类型名新类型名;2.用typedef定义类型的方法(举例)①先按定义数组变量形式书写:intn[100];②将变量名换成新类型名:intNUM[100];③在最前面加上typedef:typedefintNUM[100];④用新类型名来定义变量:NUMn;3.用typedef定义类型的说明:(1)用typedef可以声明各种类型名,但不能用来定义变量。(2)用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。(3)使用typedef有利于程序的通用与移植。13教师授课教案教学单元(章节):第二章:线性表2.1线性表的逻辑结构2.2线性表的顺序存储及操作实现教学目的:理解顺序表的定义、特点及其主要操作掌握插入与删除算法中数据元素的平均移动次数知识要点:线性表的定义、特点、基本操作顺序表的定义、特点和存储顺序表的初始化、插入、删除、查找操作,应用举例技能要点:线性表的逻辑结构及基本操作线性表的顺序存储结构及其基本操作实现教学方法:讲授+演示教具及教学手段:投影作业布置情况:P37;1P38;6课后分析与小结:本节重点:线性表的定义、特点和顺序表的基本操作本节难点:顺序表的插入和删除算法及其时间复杂度审批:教研室主任(签字)年月日抽查:系部主任(签字)年月日14教学内容及过程板书或旁注2.1线性表的逻辑结构2.1.0线性表的实际例子2.1.1线性表的定义2.1.2线性表的基本操作1.初始化:Init_List(L)2.置空:Setnull_List(L)3.求长度:Length_List(L)4.取表元:Get_List(L,i)5.查找:Locate_List(L,x)6.插入:Insert_List(L,x)7.删除:Delete_List(L,i)2.2线性表的顺序存储结构2.2.1线性表的顺序存储结构1.顺序表的定义和特点2.顺序表的存储和类型定义2.2.2顺序表的基本算法实现1.初始化顺序表L2.插入3.删除4.按值查找15教师授课教案教学单元(章节):第二章:线性表2.3.1单链表2.3.2单链表上基本运算的实现教学目的:掌握单链表的定义、特点及存储结构掌握单链表的查找、插入与删除算法理解带首结点的单链表的优点知识要点:单链表的定义、特点、标识、结点结构和存储结构单链表的建立、求表长、查找、插入和删除算法技能要点:单链表的结点结构和存储结构单链表的查找、插入与删除算法教学方法:讲授+演示教具及教学手段:投影作业布置情况:P38;8课后分析与小结:本节重点:单链表的定义、特点和存储结构基本操作本节难点:单链表的查找、插入和删除算法审批:教研室主任(签字)年月日抽查:系部主任(签字)年月日16教学内容及过程板书或旁注2.3线性表的链式存储结构2.3.1单链表1.单链表的定义和特点2.单链表的存储结构和类型定义2.3.2单链表上的基本运算的实现1.建立单链表(1)头部插入法建立(2)尾部插入法建立2.求表长(1)带头结点的单链表(2)不带头结点的单链表3.查找操作(1)按序号查找(2)按值查找4.插入操作(1)后插节点(2)前插节点(3)插入运算5.删除操作(1)删除节点(2)删除运算17教师授课教案教学单元(章节):第二章:线性表2.3.3循环链表2.3.4双向链表教学目的:掌握单链表的定义、特点及存储结构掌握单链表的查找、插入与删除算法理解带首结点的单链表的优点知识要点:循环链表和双向链表的定义、特点、标识、结点结构两个循环链表的连接、双向链表中结点的插入和删除顺序表和链表的比较技能要点:两个循环链表的连接算法双向链表中结点的插入和删除教学方法:讲授+演示教具及教学手段:投影作业布置情况:P38;7、9课后分析与小结:本节课的重点:循环链表和双向链表的特点和基本操作难点:循环链表连接操作、双向链表的插入和删除审批:教研室主任(签字)年月日抽查:系部主任(签字)年月日18教学内容及过程板书或旁注2.3.3循环链表一.循环链表的定义二.循环链表示意图(1)带头结点的单循环链表(2)仅设尾指针的单循环链表三.循环链表的特点四.循环链表的说明