数据结构与算法new.docVIP

  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文档。上传文档
查看更多
数据结构与算法new.doc

合数据结构与算法 C语言版 第1章 绪论 引 论 对于一个课题,在计算机领域,一般遵循下面的解决原则: 需求分析 总体设计 模块分割 建立数学模型 解数学模型的算法 程序编制 调试 结果 数据结构涉及到:数学模型的建立和对该模型具体实现的对应的算法。 1.1数据结构的基本概念和术语 1. 基本术语 (1)数据:描述客观事物的数字、字符以及所有能输入到计算机中并被计算机程序处理的符号的集合。(数字、字符、声音、图形、图像等等) (2)数据元素:数据的基本单位,在计算机程序中常常作为一个整体进行考虑和处理,如纪录/结构。 (3)数据项:数据的不可分割的最小单位,如结构 中的域。 (4)数据对象:性质相同的数据元素的集合,是数据的一个子集。 2. 数据结构 (1)定义:是相互之间存在一种或多种特定关系的数据元素的集合。 数据之间不是相互独立的,他们之间有某种特定的关系,这种数据元素之间的关系,称为“结构” 结构 关系+实体 另一种定义:按照逻辑关系组织起来的一批数据, 按一定的存储方法把它存储在计算机中, 并在这些数据上定义了一个运算的集合。 形式定义:二元组 D,S 其中D是数据元素的有限集,S是D上关系的有限集 (2)四种基本结构(逻辑结构) p5 集合:元素仅属于同一个集体,没有其他关系。 线性结构:存在一对一 关系,序列相邻,次序关系。 树型结构:存在一对多关系,层次关系。 图状结构(网状结构) :存在多对多关系,任意性 存储器模型:一个存储器M是一系列固定大小的存储单元,每个单元U有一个唯一的地址A U ,该地址被连续地编码。每个单元U有一个唯一的后继单元U’ succ U 物理结构就是逻辑结构到存储器的一个映射。 四种存储结构:顺序存储、链接存储、索引存储、散列存储 (3)实例:P1-P3 例1-1 —— 例1-3 表:计算机系人事表 3. 数据结构的划分 (1)按数据结构的性质划分 数据的逻辑结构——数据元素之间的逻辑关系 (设计算法—— 数学模型) 数据的物理结构——数据结构在计算机中的映像 (存储结构,算法的实现) (2)按数据结构在计算机内的存储方式来划分 顺序存储结构——借助元素在存储器的相 对位置来表示数据元素之间的逻辑关系。 链式存储结构——借助指示元素存储地址的指针表示数据元素之间的逻辑关系。 索引存储方法:在存储结点的同时,还建立附加 的索引表,索引表中的每一项称为索引项,形式为:关键字,地址。 散列存储方法:根据结点的关键字直接计算出该结点的存储地址。 说明:四种存储方法可结合起来对数据结构进行存储映像。 (3)按数据结构的操作来划分 静态结构——经过操作后,数据的结构特征保持不变(如数组)。 半静态结构——经过操作后,数据的结构特性只允许很小变迁(如栈、队列)。 动态结构——经过操作后,数据的结构特性变化比较灵活,可随机地重新组织结构(如指针)。 1.2 抽象数据类型—— ADT 定义:是指基于一个逻辑类型的数据模型以及定义在该模型上的一组操作。每一个操作由它的输入和输出定义。 抽象的与具体的相对应 示例: int a,b; 则 a和b可以进行+、-、*、/的运算 2和6则是具体的int数据 1.3 算法和算法分析 1. 算法 p13 定义:指一系列确定的而且是在有限步骤内能完成的操作。 算法的重要特性 P13 1 有穷性 :能执行结束 2 确定性 :对于相同的输入执行相同的路径 3 可行性: 用于描述算法的操作都是足够基本的 4 输入: 5 输出: 问题:程序是不是算法? 如操作系统,只要系统不遭破坏,它就永远不会停止,即使没有作业要处理,仍处于一个等待循环中,等待新作业的进入。因此操作系统程序不是一个算法。 2. 算法与数据结构的关系 计算机科学家沃斯(N.Wirth)提出的: “算法+数据结构 程序” 揭示了程序设计的本质:对实际问题选择一种好的数据结构,加上设计一个好的算法,而好的算法很大程度上取决于描述实际问题的数据结构。算法与数据结构是互相依赖、互相联系的。 一个算法总是建立在一定数据结构上的;反之,算法不确定,就无法决定如何构造数据。 —— p6图1.6上面2行 算法与数据结构关系举例 例1:编写程序查询某城市某人的电话号码建立一张登记表,存放2个数据项: 姓名+Tel 好的算法取决于这张表的结构及存储方式: 将表中结点按照姓名顺序地存储在计算机中,依次查找,可能遍历整个表都找不到。 建立一张姓氏索引表:姓+表中的起始地址 则不需查找其他姓氏,查找效率得到提高。 算法与数据结构关系举例 例2: 设计一个考试日程安排表,使在尽可能短的时间内安排完考试,要求同一个学生选修的几门课程不能安排在同一个时间内。 算法与数

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档