- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章---数据结构概念
第一章 数据结构概念 集美大学计算机学院 什么是数据结构 抽象数据类型及面向对象概念 算法定义 模板 算法简单性能分析与度量 “学生”表格 “课程”表格 “选课单”包含如下信息 学号 课程号 成绩 时间 学生选课系统中实体构成的网状关系 UNIX文件系统的系统结构图 数据(data) 数据是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中,被计算机程序识别和处理的符号的集合。 数据的分类: 数值性数据:整型、浮点型、复数、双精度数等 非数值性数据:字符和字符串、文字、图形、 图像、语音等 什么是数据结构 例:N 个网站之间的通讯网络 随编程环境的不同而不同,当用高级程序进行编程时,通常可用高级编程语言中提供的数据类型描述之。 例如,当以“顺序存储结构”表示长整数时,可将它定义为数组: typedef int Long_int[3]; 同样,此时对数据元素也要借用高级编程语言中的数据类型描述之。 对每一个数据结构而言,必定存在与它密切相关的一组操作。若操作的种类和数目不同,即使逻辑结构相同,数据结构能起的作用也不同。 不同的数据结构其操作集不同,但下列操作必不可缺: 1) 结构的生成; 2) 结构的销毁; 3) 在结构中查找满足规定条件的数据元素; 4) 在结构中插入新的数据元素; 5) 删除结构中已经存在的数据元素; 6) 遍历。 综合实例:学生表 学生表的二元组表示 采用二元组表示表1.1的学生表。 学生表中共有7个结点,依次用k1~k7表示,则对应的二元组表示为B=(K,R),其中: K={k1,k2,k3,k4,k5,k6,k7} R={k1,k2,k2,k3,k3,k4,k4,k5,k5,k6,k6,k7} 具体表示如下: {1,8,8,34,34,20,20,12,12,26,26,5} 抽象数据类型及面向对象概念 数据类型 定义:一组性质相同的值的集合, 以及定义于这个值集合上的一组操作的总称. C语言中的数据类型 char int float double void 字符型 整型 浮点型 双精度型 无值 抽象数据类型 (ADTs: Abstract Data Types) 抽象数据类型是由用户定义,用以表示应用问题的数据模型。 特点是:信息隐蔽和数据封装,使用与实现相分离(类型的声明与其实现分开)。 抽象数据类型可用(D, S, P)三元组表示,其中,D 是数据元素的集合(简称数据对象),S 是 D上的关系集合,P 是对 D 的基本操作集合。 封装物理实现,公开界面接口。改变抽象数据类型的物理实现,不影响其他使用该抽象数据类型的程序(只要界面中的接口或服务方式不变)。 抽象数据类型的描述 其中数据对象、数据之间的关系用伪码描述;基本操作定义格式为 基本操作有两种参数:赋值参数只为操作提供输入值;引用参数以打头,除可提供输入值外,还将返回操作结果。 “前置条件”描述了操作执行之前数据结构和参数应满足的先决条件,若不满足,则操作失败,并返回相应出错信息。 “后置条件”说明了操作正常完成之后,数据结构的变化状况和应返回的结果。若前置条件为空,则省略之。 C++语言中使用struct和class定义抽象数据类型 自然数的抽象数据类型定义(伪码描述) ADT NaturalNumber is objects: 一个整数的有序子集合,它开始于0, 结束于机器能表示的最大整数(MaxInt)。 Function: 对于所有的 x, y ? NaturalNumber; False, True ? Boolean, +、-、、==、= 等都是可用的服务。 Zero( ) : NaturalNumber //前置条件:无 //后置条件:返回自然数0 IsZero(x) : Boolean //前置条件:x为NaturalNumber //后置条件:if (x == 0) then 返回True
文档评论(0)