数据结构(Java版)教案-数据结构(Java版)-吕云翔-清华大学出版社

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P23【算法2.3】P24【例2.3】【例2.4】
三线性表的链式存储和实现
采用链式存储方式存储的线性表称为链表,链表是用若干地址分散的存储单元存储数据元素。逻辑上相邻的数据元素在屋里位置上不一定相邻,必须采用附加欣喜表示数据元素之间的逻辑关系,因此链表的每一个结点不仅包含元素本身的欣喜-数据域,而且包含元素之间的逻辑关系的欣喜,即逻辑上相邻结点地址的指针域。
单链表的建立操作
1)头插法P30【算法2.9】
2)尾插法P30【算法2.10】
本章节的教学重点、难点
本章重点是熟练掌握顺序表(P20-24)和单链表(P25-32)上实现的各种基本算法及相关的时间性能分析,难点是能够使用本章学到的基本知识设计有效算法与线性表相关的应用问题。
五算法的时间/空间复杂度
·.算法分析举例书本P12【例1.4】
ቤተ መጻሕፍቲ ባይዱ本章节的教学重点、难点:
1.重点是数据结构的基本概念
2.难点是时间复杂度分析
教学方法、教学手段:
1.介绍到算法概念
2.算法分析和举例
使用教具:计算机和投影仪
作业、讨论题、思考题:
P16算法设计题
讲授章节
第二章线性表
授课时数
7
教学目的:
1.介绍线性表的基本概念(P17)和各种存储表示方法(P18-20)
4)表长加1.P21【算法2.1】
删除操作
P22图2.4主要步骤为:
1)判断参数i是否满足i<=i<=curLen-1,若不满足则炮出异常。
2)将第i个数据元素之后的数据元素都向前移动一个存储单元。
3)表长减1.P22【算法2.2】
查找操作
除妖步骤为将x与顺序表中的每一个数据元素的值进行比较,若想等,则返回该数据元素的位置;若比较结束未找到等值的数据元素,返回-1.
单链表
单链表指结点中只包含一个指针域的链表,指针域中储存着指向后继结点的指针。P25图2.5、2.6
查找操作
其主要步骤为将x与单链表中的每一个数据元素的数据域进行比较,若想等,则返回该数据元素在单链表中的位置;若比较结束未找到等值的数据元素,返回-1.
P27【算法2.4】【算法2.5】
插入操作
主要步骤如下:
1)查找到插入位置的前驱结点,即第i-1个结点。
2)创建数据域值为x的新节点。
3)修改前去结点的指针域为指向新节点的指针,洗呢几点的指针域位指向原第i个结点的指针。
P28【算法2.6】【算法2.7】
删除操作
主要步骤如下
1)判断单链表是否为空。
2)查找待删除结点的前驱结点。
3)修改前驱结点的指针域为待删除结点的指针域。P30【算法2.8】
数据抽象:数据抽象指“定义和实现相分离”,即将一个类型的数据及其上的操作的逻辑含义和具体实现相分离,只考虑执行什么操作,而不考虑怎样实现这些操作。
抽象数据类型:抽象数据类型是从问题的数学模型中抽象出来的逻辑结构定义在逻辑结构上的一组操作,进描述了数据的特性和数据操作的语法规则,颖仓了数据的训处结构和操作的实现细节。P6【例1.2】
2.定义在逻辑结构上的各种基本运算及起在存储结构上如何实现这些基本运算(P20--32)。
3.要求在这些内容的基础上,能够针对具体应用问题的要求和性质,选择合适的存储结构设计出相应的有效算法,解决与线性表相关的实际问题。
教 学内 容(讲授提纲)
一线性表
线性表的Java接口的实现方法主要有以下两种
1)基于顺序存储的实现2)基于链式存储的实现。
二线性表的顺序存储
定义:是把线性表中的所有元素按照其瑞吉顺序一次存储到计算机的内存单元中指定存储位置开始的一块连续的存储空间中,成为顺序表。P19图2.2
特点:
1)在线性表中逻辑上相邻的元素在物理存储位置上也同样相邻。
2)可按照数据元素的位序号进行随机存取。
3)进行插入,杀出操作需要移动大量的数据元素。
教案
讲授章节
第1章绪论
授课时数
2
教学目的:
1.介绍数据结构的基本概念(P2)
2.算法的描述(P8)和算法时间复杂度(P10)空间复杂度(P11)
3.要求了解本章介绍的各种基本概念和术语,是全书的基础。
教 学内 容(课程导入)
一数据结构
数据结构基本概念:指的是相互之间存在着一种或者多种关系的数据元素的集合,也叫数据元素类,是数据的一个自己,数据元素是数据对象的一个实例。
二算法:
算法的定义:算法是有穷规则的集合,其规则确定一个解决某一特定类型问题的指令序列,其中每一条指令表示计算机的一个或者多个操作。
算法必须满足五个特性:1)有穷性2)确定性3)可行性4)有输入5)有输出
算法建立在数据结构上,对数据结构的操作需要使用算法来描述。算法设计依赖于数据的逻辑结构,算法实现依赖于数据的存储结构。
·通常采用算法的渐进分析中的大O表示作为算法时间复杂度的渐进度量值,称为算法的渐进时间复杂度。
·循环语句的时间代价一般可用一下3条原则进行分析:
1)一个循环的时间代价=循环次数每次执行的基本指令数目。
2)多个并列的循环的时间代价=每个循环的时间代价之和。
3)多层嵌套循环的时间代价=每层循环的时间代价值积。
4)需要进行存储空间的预先分配,可能会造成空间浪费,但存储密度较高
描述:P19
插入操作:
P21图2.3主要步骤为:
判断顺序表的存储空间是否已满,若已满则抛出异常。
1)判断参数i的值是否满足0<=i<=curLen,若不满足则抛出异常。
2)将插入位置及其之后的所有数据元素后移一个存储位置。
3)在位置i出插入新的数据元素x。
数据的逻辑结构可分为四类:1)集合2)线性结构3)树形结构4)图形结构P3【图1.2】
数据的存储结构可分为四类:1)顺序存储结构2)链式存储结构3)索引存储结构4)散列存储结构
数据操作:1)创建操作2)插入创造3)删除创造4)查找创造5)修改操作6)遍历操作7)销毁操作
数据类型:是一组性质相同的值的集合和定义在此集合上的一组操作的总称。
算法描述:算法可以采用1)自然语言2)程序设计语言3)伪代码多种语言来描述
P9【例1.3】
三算法分析
算法分析是主要是通过某种方法讨论算法的复杂度,评价算法的效率,以便在解决实际问题时根据实际情况和算法的优缺点对算法进行取舍。
四算法的时间复杂度
是指算法的执行时间虽问题规模的变化而变化的趋势,反映算法执行时间的长短。执行时间是用算法编写的程序在计算机上运行的时间,他是算法中涉及的所有的基本运算的执行时间之和。
相关文档
最新文档