电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

南邮数据结构课件

53页
  • 卖家[上传人]:小**
  • 文档编号:93486587
  • 上传时间:2019-07-22
  • 文档格式:PPT
  • 文档大小:222.50KB
  • / 53 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、南京邮电大学计算机学院 2006年9月,数据结构,Data Structures in C+,Instructor:陈慧南 Email: ,南京邮电大学计算机学院 2006年9月,数据结构A课程性质、任务和目的,性质:是计算机学科的一门专业基础课。 目的:在于学习如何组织和表示数据,并在相应的数据结构上实现对数据的操作。 基本任务: 是学习常见的基本数据结构,包括线性表、栈和队列、数组和字符串、树、搜索树、散列表、图和文件等,理解它们的逻辑结构、存储结构,领会在这些数据结构上定义的运算和实现运算的算法。学习和领会内、外排序算法。,南京邮电大学计算机学院 2006年9月,第1章 基础知识,南京邮电大学计算机学院 2006年9月,1.1 算法与数据结构,1.1 算法与数据结构 1.2 什么是数据结构 1.3 数据抽象和抽象数据类型 1.4 描述数据结构和算法 1.5 算法分析的基本方法,南京邮电大学计算机学院 2006年9月,数据结构和算法是计算机学科的基础之一,更是软件技术的基础。 数据的组织和表示方法直接影响使用计算机求解问题的效率。 算法设计通常建立在所处理数据的一定组织形式之上的,

      2、它们之间有着本质的联系。当讨论一种算法时,自然要涉及算法所处理的数据问题。,程序 = 数据结构+算法,南京邮电大学计算机学院 2006年9月,1.2 什么是数据结构,1.1 算法与数据结构 1.2 什么是数据结构 1.3 数据抽象和抽象数据类型 1.4 描述数据结构和算法 1.5 算法分析的基本方法 上机时间安排 作业 本章小结,南京邮电大学计算机学院 2006年9月,1.2.1 基本概念,基本术语 数据(data):计算机加工处理的对象。 数据元素:组成数据的基本单位 数值数据(numerical data) 非数值数据(non-numerical data),南京邮电大学计算机学院 2006年9月,数据结构的由来 数据结构主要是为研究和解决如何使用计算机组织和处理这些非数值问题而产生的理论、技术和方法。它已成为计算机学科研究的基本课题之一。,南京邮电大学计算机学院 2006年9月,什么是数据结构,数据结构包括三个方面 逻辑结构:数据元素间的逻辑关系; 存储结构:数据在计算机内的表示形式; 运算:在数据上执行的操作。,南京邮电大学计算机学院 2006年9月,南京邮电大学计算机学院 2

      3、006年9月,1.2.2 数据的逻辑结构,数据的逻辑结构 对数据元素间逻辑关系的描述被称为数据的逻辑结构(logical structure) ,它可以用一个二元组表示:DS=(D,R),其中,D是数据元素的有限集合,R是D中元素序偶的集合。,南京邮电大学计算机学院 2006年9月,四类基本逻辑结构 (a)集合结构 (b)线性结构 (c)树形结构 (d)图状结构,南京邮电大学计算机学院 2006年9月,1.2.3 数据的存储表示,顺序存储 需要一块连续的存储空间,并把逻辑上相关的数据元素依次存储在该连续的存储区中。 Loc(ak)1022* k,南京邮电大学计算机学院 2006年9月,链接存储,几种存储结构 顺序结构 链接结构 索引结构 散列结构,Data Link,地址信息称为链。 表示空链。,南京邮电大学计算机学院 2006年9月,南京邮电大学计算机学院 2006年9月,1.2.4 数据结构的运算,数据结构最常见的运算 创建运算:创建一个数据结构; 清除运算:删除数据结构中的全部元素; 插入运算:在数据结构的指定位置上插入一个新元素; 删除运算:将数据结构中的某个元素删除; ,南京

      4、邮电大学计算机学院 2006年9月,静态数据结构和动态数据结构 如果一个数据结构一旦创建,其结构不发生改变,则称为静态数据结构,否则成为动态数据结构。,南京邮电大学计算机学院 2006年9月,例1.1 栈数据结构 堆栈是一种线性数据结构,可以向栈中加入元素,但只允许访问和删除最后入栈的元素 (1)向栈中加入一个元素(Push运算); (2)从栈中删除最后加入的元素(Pop运算); (3)访问最后加入栈中的元素(Top运算);,南京邮电大学计算机学院 2006年9月,什么是数据结构 一个数据结构是由数据元素依据某种逻辑联系组织起来的,对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。,南京邮电大学计算机学院 2006年9月,1.3 数据抽象和抽象数据类型,1.1 算法与数据结构 1.2 什么是数据结构 1.3 数据抽象和抽象数据类型 1.4 描述数据结构和算法 1.5 算法分析的基本方法 上机时间安排 作业 本章小结,南京邮电大学计算机学院 200

      5、6年9月,抽 象:抽取事物的共同的和实质的东西,忽略其非本质的细节。 整型数个体: 126,235 整型数的共性:取值范围,共同的运算,南京邮电大学计算机学院 2006年9月,整型int的规范 变量 a 的取值范围是:-3276832767 对变量 a 执行的操作有: 算术运算 +、-、*、/、% 关系运算 、=、=、!= 赋值运算 = 整型int的实现 变量 a 在计算机内存储表示方法。 操作的具体实现方法。,南京邮电大学计算机学院 2006年9月,南京邮电大学计算机学院 2006年9月,1.3.1 抽象、数据抽象和过程抽象,抽象:其实质是抽取共同的和本质的内容,忽略非本质的细节。 数据抽象:使程序设计者可以将数据元素间的逻辑关系和数据在计算机内的具体表示分别考虑。 过程抽象:使程序设计者将一个运算的定义与实现运算的具体方法分开考虑。抽象的好处主要在于降低了问题求解的难度。,南京邮电大学计算机学院 2006年9月,1.3.2 封装与信息隐蔽,封装:是指把数据和操纵数据的运算组合在一起的机制。使用者只能通过一组允许的运算访问其中的数据。 信息隐蔽:对使用者隐藏了数据结构或程序的实现细节

      6、。 通常将数据和操纵数据的运算组成模块。每个模块有一个明确定义的界面,模块内部信息只能经过这一界面被外部访问。,南京邮电大学计算机学院 2006年9月,模块应采用封装和信息隐蔽原则来设计,这样的模块被称为黑盒子。 封装和信息隐蔽的作用:错误局部化,降低问题求解的复杂性,提高程序的可靠性。 C+语言的类 可以封装数据和运算,其公有、保护和私有成员机制有利于实现信息隐蔽。,南京邮电大学计算机学院 2006年9月,1.3.3 数据类型和抽象数据类型,数据类型 是程序设计语言中的概念,它是数据抽象的一种方式。一个数据类型定义了一个值的集合以及作用于该值集的运算集合。 程序设计语言中,一个数据类型不仅规定了该类型的变量(或常量)的取值范围,还定义了该类型允许的运算。,南京邮电大学计算机学院 2006年9月,数据类型是具有相同值集和操作集的数据对象(变量和常量)的抽象。 相同的数据类型的变量具有相同的取值范围,允许执行相同的操作; 对变量执行允许的操作,可以不必考虑变量在计算机内的存储细节和这些操作是如何执行的。,南京邮电大学计算机学院 2006年9月,抽象数据类型(abstract data t

      7、ype ADT)是一个数据类型,其主要特征是该类型的对象及其运算的规范,与该类型对象的表示和运算的实现分离,实行封装和信息隐蔽,即所谓使用和实现分离。,南京邮电大学计算机学院 2006年9月,1.3.4 数据结构与抽象数据类型,逻辑结构和运算的定义组成了数据结构的规范(specification) 数据的存储表示和运算算法的描述构成数据结构的实现(implementation)。 从规范和实现两方面来讨论数据结构的方式是抽象数据类型的观点。 一种数据结构被视为一个抽象数据类型。,南京邮电大学计算机学院 2006年9月,1.3.4 数据结构与抽象数据类型,数据结构的抽象层次 抽象层:讨论数据的逻辑结构及其运算定义, 实现层:讨论数据的存储表示以及运算的算法实现。,南京邮电大学计算机学院 2006年9月,逻辑结构和运算的定义组成了数据结构的规范。 数据的存储表示和运算算法的描述构成数据结构的实现。 从规范和实现两方面来讨论数据结构的方式是抽象数据类型的观点。 一种数据结构被视为一个抽象数据类型。,南京邮电大学计算机学院 2006年9月,1.4 描述数据结构和算法,1.1 算法与数据结构 1

      8、.2 什么是数据结构 1.3 数据抽象和抽象数据类型 1.4 描述数据结构和算法 1.5 算法分析的基本方法 上机时间安排 作业 本章小结,南京邮电大学计算机学院 2006年9月,1.4.1 数据结构的规范,数据结构被看成是一个类属抽象数据类型(ADT),用格式化的自然语言来描述。 数据结构可以形式地用一个C+的抽象模板类描述。,南京邮电大学计算机学院 2006年9月,ADT 1.1 栈ADT ADT Stack 数据: 0个或多个元素的线性序列(a0,a1,.,an-1), 其最大允许长度为MaxStackSize。 运算: Create(): 建立一个空栈 Destroy():撤消一个栈 Push(x):值为x的新元素进栈,成为栈顶元素 Pop():从栈中删除栈顶元素 Top(x):在x中返回栈顶元素 ,南京邮电大学计算机学院 2006年9月,程序1.1 栈的模板抽象类 template class Stack / 栈类Stack是一个模板抽象类, 其成员函数为纯虚函数,未定义数据成员。 public: virtual bool Push(T x)=0; virtual bool

      9、Pop()=0; virtual bool Top(T ,南京邮电大学计算机学院 2006年9月,1.4.2 实现数据结构,程序1.2 栈的顺序实现 template class SeqStack:public Stack public: private: int top; /top记录最后入栈的元素在s的下标 int maxTop; /最大栈顶指针 T *s; /s指向动态生成的一维数组,存放元素 ;,南京邮电大学计算机学院 2006年9月,template SeqStack:SeqStack(int mSize) maxTop=mSize-1; /设置栈的容量值 s=new TmSize; /生成存储栈的数组 top=-1; /top=1表示空栈 ,南京邮电大学计算机学院 2006年9月,1.5 算法分析的基本方法,1.1 算法与数据结构 1.2 什么是数据结构 1.3 数据抽象和抽象数据类型 1.4 描述数据结构和算法 1.5 算法分析的基本方法,南京邮电大学计算机学院 2006年9月,1.5.1 算法及其性能标准,什么是算法 笼统的说,算法是求解一类问题的任意一种特殊的方法。较严格的说法是一个算法是对特定问题的求解步骤的一种描述,它是指令的有限序列;此外,算法具有下列五个特征:,南京邮电大学计算机学院 2006年9月,输入:算法有零个或多个输入 输出:算法至少产生一个输出 确定性:算法的每一条指令都有确切的定义,没有二义性。 能行性:算法的每一条指令都足够基本,它们可以通过已经实现的基本运算执行有限次来实现。 有穷性:算法必须总能在执行有限步之后终止。,南京邮电大学计算机学院 2006年9月,算法的性能标准 正确性:算法的执行结果应当满足预先规定的功能和性能要求。 简明性:一个算法应当思路清晰、层次分明、简单明了、易读易懂。 健壮性:当输入不合法数据时,应能做适当处理,不至于引起严重后果。 效率:有效使用存储空间,并有高的时间效率。,南京邮电大学计算机学院 2006年9月,1.5.2

      《南邮数据结构课件》由会员小**分享,可在线阅读,更多相关《南邮数据结构课件》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.