数据结构课件(第一章).ppt_第1页
数据结构课件(第一章).ppt_第2页
数据结构课件(第一章).ppt_第3页
数据结构课件(第一章).ppt_第4页
数据结构课件(第一章).ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构课程地位 数据结构与其它课程关系图: 编译原理 人工智能 操作系统 离散数学 计算机基础知识 其它专业课 数据结构 数据库 程序设计语言 参考书籍: n数据结构(C语言版) 严蔚敏 吴伟民 清华大学出版社 n数据结构题集(C语言版) 严蔚敏 清华大学出版社 n数据结构学习指导与典型题解 朱战立 西安交通大学出版 社 n数据结构与程序设计C语言描述 (第2版)(Data Structure n高级语言中,给出更高一级的数据抽象,如 整型、实型、字符型等; n还可以进一步定义更高级的数据抽象,如各 种表、队、栈、树、图、窗口、管理器等复杂 的抽象数据类型。 return 抽象数据类型(Abstract Data Type) n定义: 抽象数据类型(简称ADT)是指基于一 类逻辑关系的数据类型以及定义在这个类型之 上的一组操作。 一个抽象数据类型确定了一个模型,但 将模型的实现细节隐藏起来;它定义了一组运 算,但将运算的实现过程隐藏起来。 抽象数据类型(Abstract Data Type) n线性表的抽象数据类型的描述: ADT Linear_list 数据元素 所有ai属于同一数据对象, i=1,2,n,n=0; 逻辑结构 所有数据元素ai(i=1,2,n-1 )存在次序关系,a1无前趋,an无后继; 操作 设L为Linear_list Initial(L)初始化空线性表; Length(L)求线性表的表长; Get(L,i)取线性表的第i个元素; Insert(L,i,b)在线性表的第i个位置插 入元素b; Delete(L,i)删除线性表的第i个元素; return ADT的表示与实现 nADT的定义: ADT 数据对象: 结构关系: 基本操作: ADT n基本操作的定义格式为: (参数表) 操作前提: 操作结果: ADT的表示与实现 n关于参数传递 参数表中的参数有值参和变参两种。 n用标准C语言表示和实现ADT描述时,主要 有两个方面: ( 1 ) 通过结构体将int、float等固有类型组合到一起,构 成一个结构类型,再用typedef为该类型或该类型指针重新起 一个名字。 ( 2 )用C语言函数实现各操作。基本操作包括插入、删除 、更新、查找、排序等 。 return 1.2 数据结构的内容 n逻辑结构 n存储结构 n运算集合 返回 逻辑结构 n定义: 数据的逻辑结构是指数据元素之间逻辑关系描述。 n形式化描述: Data_Structure=(D,R)其中D是数据 元素的有限集,R是D上关系的有限集。 n四类基本的结构 集合结构、线性结构、树型结构、图状结构。 集合结构 n定义: 结构中的数据元素之间除了同属于一个 集合的关系外,无任何其它关系。 集合 线性结构 n定义: 结构中的数据元素之间存在着一对一的 线性关系。 线性表 树型结构 n定义: 结构中的数据元素之间存在着一对多的 层次关系。 树 图状结构或网状结构 n定义: 结构中的数据元素之间存在着多对多的 任意关系。 图 逻辑结构 综上所述,数据的逻辑结构可概括为: return 逻辑结构 非线性结构树、图 线性结构线性表、栈、 队字符串、数组、广义表 存储结构 n定义: 存储结构(又称物理结构)是逻辑结构在计算 机中存储映象,是逻辑结构在计算机中的实现,它 包括数据元素的表示和关系的表示。 n形式化描述: D要存入机器中,建立一从D的数据元素到存 储空间M单元映象S ,DM,即对于每一个d, dD,都有唯一的zM使S(D)=Z, 同时这个映象 必须明显或隐含地体现关系R。 存储结构 逻辑结构与存储结构的关系为: 存储结构是逻辑关系的映象与元素本身 映象,是数据结构的实现;逻辑结构是数据 结构的抽象。 数据元素之间关系在计算机中的表示方法: n顺序映象 (顺序存储结构) n非顺序映象(非顺序存储结构) return 运算集合 例如工资表: 编号姓名性别基本 工资 工龄 工资 应扣 工资 实发 工资 数据结构的内容 数据结构的内容可归纳为三个部分: 逻辑结构、存储结构和运算集合。 按某种逻辑关系组织起来的一批数据,按 一定的映象方式把它存放在计算机存贮器中, 并在这些数据上定义了一个运算的集合,就叫 做数据结构。 return 1.3 算法 n算法(Algorithm)定义 n算法的特性 n算法设计的要求 返回 算法(Algorithm)定义 n定义: Algorithm is a finite set of rules which gives a sequence of operation for solving a specific type of problem. 算法是规则的有限集合,是为解决特定 问题而规定的一系列操作。 return 算法的特性 1. 有限性:有限步骤之内正常结束,不能形 成无穷循环 2. 确定性:算法中的每一个步骤必须有确定 含义,无二义性得以实现。 3. 输入: 有多个或0个输入 4. 输出: 至少有一个或多个输出。 5. 可行性:原则上能精确进行,操作可通过 已实现基本运算执行有限次而完成。 return 算法设计的要求 算法特征: n算法的正确性 n 可读性 n 健壮性 n 高效率和低存储量 求n个数的最大值,算法如下: max=0; for(i=1 ;imax) max=x; return 1.4 算法描述的工具 n概述: 算法+数据结构=程序 n算法、语言、程序的关系 n设计实现算法过程步骤 n类描述算法的语言选择 返回 算法、语言、程序的关系 1. 算法:描述了数据对象的元素之间的关系 (包括数据逻辑关系、存贮关系描述)。 2. 描述算法的工具:算法可用自然语言、框 图或高级程序设计语言进行描述。 3.程序是算法在计算机中的实现。 return 设计实现算法过程步骤 1. 找出与求解有关的数据元素之间的关系 2. 确定在某一数据对象上所施加运算 3. 考虑数据元素的存储表示 4. 选择描述算法的语言 5.设计实现求解的算法,并用程序语言加以描 述。 return 类描述算法的语言选择 类语言: 类语言是接近于高级语言而又不是严 格的高级语言,具有高级语言的一般语句设施 ,撇掉语言中的细节,以便把注意力主要集中 在算法处理步骤本身的描述上。 对C语言作以下描述: 1.预定义常量和类型 # define TRUE 1 # define FALSE 0 # define MAXSIZE 100 # define OK 1 # define ERROR 0 对C语言作以下描述: 2.函数的表示形式: 数据类型 函数名(形式参数及说明) 内部数据说明; 执行语句组; /*函数名*/ 对C语言作以下描述: 3.赋值语句 对C语言作以下描述: (1)简单赋值 1)变量名=表达式 2) 变量+, 3) 变量- -, (2)串联赋值 变量1=变量2=变量3=变量k= 表达式 对C语言作以下描述: (3)条件赋值 变量名=条件表达式?表达式1: 表达式2 4.条件选择语句 if () 语句; if () 语句1; else 语句2; 对C语言作以下描述: 情况语句 switch () case 判断值1: 语句组 1; break; case 判断值2: 语句组 2; break; case 判断值n: 语句组n; break; default: 语句组; break; 对C语言作以下描述: 5.循环语句 nfor 语句 for (;) 循环体语句; 对C语言作以下描述: nwhile 语句 while () 循环体语句; ndo while 语句 do 循环体语句 while () 对C语言作以下描述: 6.输入、输出函数 7.其它一些语句 8.注释语句 9.一些基本的函数 return 1.5 对算法作性能评价 n评价算法的标准: 评价一个算法主要看这个算法所占 用机器资源的多少,而这些资源中时间代价与 空间代价是两个主要的方面,通常是以算法执 行所需的机器时间和所占用的存储空间来判断 一个算法的优劣。 n性能评价 n有关数量关系计算 返回 性能评价 n定义: 对问题规模与该算法在运行时所占的空 间S与所耗费的时间T给出一个数量关系的 评价。 问题规模N对不同的问题其含义不同: 对矩阵是阶数; 对多项式运算是多项式项数; 对图是顶点个数; 对集合运算是集合中元素个数。 return 有关数量关系计算 数量关系评价体现在时间算法在机器中所耗费 时间。 数量关系评价体现在空间算法在机器中所占 存储量。 n关于算法执行时间 n语句频度 n算法的时间复杂度 n数据结构中常用的时间复杂度频率计数 n最坏时间复杂度 n算法的空间复杂度 return 关于算法执行时间 n定义: 一个算法的执行时间大致上等于其所有 语句执行时间的总和,对于语句的执行时间是 指该条语句的执行次数和执行一次所需时间的 乘积。 n分析: 不是针对实际执行时间的精确地算出算 法执行具体时间,而是针对算法中语句的执行 次数做出估计,从中得到算法执行时间的信息 。 return 语句频度 n定义: 语句频度是指该语句在一个算法中重复执行的次数。 例如: 两个矩阵相乘 算法语句 对应的语句频度 1for(i=0;iaj+1) temp= aj; aj=aj+1; aj+1=temp; change=true; i=i+1 ; while(ilength | change=true ) return 算法的空间复杂度 n定义: 用空间复杂度作为算法所需存储空间 的量度,记做: S(n)=O(f (n) 。 return 1.6 关

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论