第一章 数据结构概论.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 数据结构概论

第一章 数据结构概论 赵建华 数据结构举例(1) 选课系统的两个数据实体:学生,课程 表格中的各个记录即数据,形成线形关系 数据结构举例(2) 学生选修课程的相关数据 在逻辑上,学生/课程具有多对多的关系,且每个(学生/课程)对还具有成绩、时间等属性 引入选课表:学生/选课、课程/选课之间具有一对多的关系 数据结构举例(3) Unix文件系统 树形结构,表示了目录/文件之间的关系 数据与数据结构(1) 数据:信息的载体,描述客观事物的数、字符、以及所有能输入到计算机中,被计算机程序识别和处理的符号的集合。 数值性数据:整数、浮点数等等 非数值性数据:字符、字符串、文字、图像、… 数据元素 数据的基本单位 由若干个数据项组成 数据与数据结构(2) 数据结构: 由某一数据元素的集合及该集合中所有数据元素之间的关系组成。记为: Data_Structure = {D, R} 其中,D是某一数据对象,R是该对象中所有数据成员之间的关系的有限集合。 主要讨论数据元素之间的关系 数据结构的分类 线性结构(Linear structure) 所有元素按照某种次序排列在一个序列中。 即元素之间存在一个全序(total order) 非线性结构(nonlinear structure) 每个元素可能与零个或多个其他元素有关系 可以分为: 层次结构(hierarchical structure):元素之间存在偏序关系 群结构(group structure):元素之间不存在顺序关系 逻辑结构/物理结构 逻辑结构:独立于计算机的,从解决问题的需要出发,为实现必要功能而建立的数据结构; 物理结构(存储结构):数据结构在计算机中的表示(映像) 顺序存储方法:逻辑上相邻的元素存放在相邻的内存空间; 链接存储方法:借助附加的指针字段来实现 索引存储方法:存储元素信息的同时,建立附加的索引表; 散列存储方法:根据节点的关键码通过一个函数计算直接得到(可能的)存储地址。 算法的设计取决于数据(逻辑)结构,而算法的实现依赖于采用的存储结构。 但是算法的最终效率很大程度上受到存储结构的影响 选择数据结构的步骤 确定算法的资源限制 分析问题 确定数据的逻辑结构 确定必须支持的基本运算 包括插入/删除数据项、查找、遍历 确定每个运算的资源闲置 选择适当的物理存储结构 数据类型 数据类型:一组性质相同的值的集合, 以及定义于这个值集合上的一组操作的总称 变量的数据类型确定了变量的取值范围及其可用操作 C语言中的数据类型 char int float double void 字符型 整型 浮点型 双精度型 无值 抽象数据类型(ADT) 定义: 由用户定义,用以表示应用问题的数据模型 由基本的数据类型组成, 并包括一组相关的服务(或称操作) 信息隐蔽和数据封装,使用与实现相分离 每个操作可以通过前置条件和后置条件来描述 ADT的例子 ADT NaturalNumber is objects: 一个整数的有序子集合,它开始于0, 结束于机器能表示的最大整数(MaxInt)。 Function: 对于所有的 x, y ? NaturalNumber; False, True ? Boolean, +、-、、==、=等都是可用的服务。 Zero( ) : PRE: true POST:返回自然数0 NaturalNumber IsZero(x) : PRE: true POST:if (x==0) 返回True else 返回False Boolean Add (x, y) : PRE: x+y=MaxInt POST: 返回 x+y NaturalNumber Subtract (x, y) : PRE: true POST:if (x y) 返回 0 else 返回 x - y NaturalNumber Equal (x, y) : PRE: true POST:if (x==y) 返回True else 返回 False Boolean Successor (x) : PRE:xMaxInt POST:返回x+1 NaturalNumber end NaturalNumber C++实现ADT 一些C++的概念 模板 适合多种数据类型的类定义或算法,在特定环境下通过简单地代换,变成针对具体某种数据类型的类定义或算法 模板的例子 #ifndef

文档评论(0)

bbnnmm885599 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档