Chapter1_数据结构绪论C.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Chapter1_数据结构绪论C.ppt

数据的逻辑结构 数据的存储结构 数据的运算:检索、排序、插入、删除、修改等 线性结构 非线性结构 顺序存储 链式存储 线性表 栈和队列 串 树形结构 图形结构 数据结构的三个方面: 数组和广义表 1.2 基本概念和术语 * 1.3 抽象数据类型 * 一、数据类型 数据类型是一个数据结构和定义在这个数据结构上的一组操作的总称 如C语言中的整型变量 int ,其数据对象为某个区间上的整数,其结构为线性结构,定义在其上的操作为+, -, x, /等 1.3 抽象数据类型 * 二、原子数据类型和结构数据类型 1. 原子数据类型 是不可分解的数据类型 如C语言中的整型 int ,实型 float ,字符型 char ,指针类型 * 和空类型 void 等 1.3 抽象数据类型 * 二、原子数据类型和结构数据类型 2. 结构数据类型 由若干成分(原子类型或结构类型)按某种结构组成的数据类型 结构数据类型可以看作是一种数据结构和定义在其上的一组操作组成的整体 如数组,由若干分量组成,每个分量可以是整数,也可以是数组(如int A[10]) * 由用户定义,用以表示应用问题的数据模型 由基本的数据类型组成, 并包括一组相关的服务(或称操作) 信息隐蔽和数据封装,使用与实现相分离 三、抽象数据类型(Abstract Data Type) 1.3 抽象数据类型 * 抽象数据类型(ADT)是一个数学模型以及定义在该模型上的一组操作 抽象数据类型 数据结构 + 定义在此数据结 构上的一组操作 三、抽象数据类型(ADT) 1.3 抽象数据类型 * 抽象数据类型可用(D,S,P)三元组表示 D是数据对象 S是D上的关系集 P是对D的基本操作集。 三、抽象数据类型(ADT的表示) 1.3 抽象数据类型 * 三、抽象数据类型(ADT定义) ADT 抽象数据类型名 数据对象:〈数据对象的定义〉 数据关系:〈数据关系的定义〉 基本操作:〈基本操作 函数 的定义〉 ADT 抽象数据类型名 1.3 抽象数据类型 * 三、抽象数据类型(ADT定义举例) ADT Triplet 数据对象:D e1,e2,e3 | e1,e2,e3∈ElemSet 数据关系:R e1,e2 , e2,e3 基本操作:Max T, e 初始条件:三元组T已存在。 操作结果:用e返回T的3个元素中的最大值。 Min T, e 初始条件:三元组T已存在。 操作结果:用e返回T的3个元素中的最小值。 ADT Triplet 1.3 抽象数据类型 * 1.3 抽象数据类型 三、抽象数据类型(ADT定义实现) 抽象数据类型可以通过固有数据类型 C++语言中已实现的数据类型 来实现 抽象数据类型 类 class 数据对象 数据成员 基本操作 成员函数 方法 1.4 算法和算法分析 * 一、算法(Algorithm) 算法是对特定问题求解步骤的一种描述 是一有限长的操作序列 * 1.4 算法和算法分析 一、算法(特性) 有穷性:算法在执行有穷步后能结束 确定性:每步定义都是确切的、无歧义的 可行性:每一条运算应足够基本 已验算正确 输入: 有0个或多个输入 输出: 有一个或多个输出 * 1.4 算法和算法分析 一、算法(举例) 例子:选择排序 问题:递增排序 解决方案:逐个选择最小数据 算法框架: for int i 0; i n-1; i++ //n-1趟 从a[i]检查到a[n-1],找到最小数; 若最小整数在a[k], 交换a[i]与a[k]; * 1.4 算法和算法分析 二、算法设计的要求 正确性:满足具体问题的需求 可读性:便于理解和修改 健壮性:当输入数据非法时,也能适当反应 效率高:执行时间少 空间省:执行中需要的最大存储空间 * 1.4 算法和算法分析 三、时间复杂度 衡量算法的效率,主要依据算法执行所需要的时间,即时间复杂度 事后统计法:计算算法开始时间与完成时间差值 事前统计法:依据算法选用何种策略及问题的规模n,是常用的方法 * 1.4 算法和算法分析 三、时间复杂度 时间复杂度是问题规模n的函数f n ,即: T n O f n 一般地,时间复杂度用算法中最深层循环内的语句中的原操作的重复执行次数表示 * 1.4 算法和算法分析 三、时间复杂度 a . y * x; b . for i 1; i n; i++ y * x; c . for j 1; j n; j++ for i 1; i n; i++ y * x; a , b , c 三个算法中,“ y * x;”程序段的时间复杂度分别为O 1 , O n , O n2 ,分别称为常量阶,线性

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档