数据结构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文档。上传文档
查看更多
END * * 数据的逻辑结构只抽象反映数据元素的逻辑关系,是数据本身所固有的,是独立于计算机的。 我们研究数据结构的目的是为了在计算机中实现对它的操作,为此还需要研究如何在计算机中表示一个数据结构——数据的物理结构,或称存储结构。 2.数据的存储结构(Storage Structure) 数据的逻辑结构在计算机内的存储表示(或称映象)称为数据的存储结构,又称为物理结构。 在计算机内部主要是顺序存储和链式存储这两种结构来表示数据元素之间的逻辑关系。 任何一个算法的设计取决于选定的逻辑结构,而算法的实现则取决于依托的存储结构。 1)顺序存储结构:将数据元素按逻辑顺序存入计算机存储器的连续存储单元中; 特点:逻辑上相邻的数据元素物理地址必相邻。 在C语言中,顺序存储结构用一维数组来描述。 存储地址 存储内容 顺序存储 Lo Loc(ai)=Lo+(i-1)*m 例:有n个数据的逻辑顺序(a1, a2, a3,…,an) a1 a2 ai an …… …… Lo+m Lo+(i-1)*m Lo+(n-1)*m 2)链式存储结构: 借助指示元素存储地址的指针表示数据元素间的逻辑关系。 为数据结构的每个结点元素附加一个数据项,其中存放一个与其相邻接的元素的地址(指针),通过指针得到下一个相关元素的实际存储地址,每个结点由数据域和指针域组成。 特点:逻辑上相邻的元素物理地址未必相邻。 存储地址 1345 1351 ……. 1400 ……. 1536 存储内容 指针 a1 1400 an ∧ …….. ……. a2 1536 …….. ……. a3 1351 链式存储 h 数据的逻辑结构 a1 ∧ an a2 a3 … 例:有n个数据的逻辑顺序(a1, a2, a3,…,an) 3.数据的运算 是指对数据施加的操作。数据的运算是定义在数据的逻辑结构上的,而实现是要在存储结构上进行的。 数据的运算是通过算法来描述的。 对数据进行的运算主要有:检索、排序、插入、删除、修改等。 数据的逻辑结构 数据的存储结构 数据的运算:检索、排序、插入、删除、修改等 线性结构 非线性结构 顺序存储结构 链式存储 结构 线性表 栈 队列 树形结构 图形结构 数据结构的三个方面: 索引存储结构 散列存储结构 数据结构与算法密切相关 算法设计 逻辑结构 算法实现 存储结构 1.3 算法描述和分析 一、算法(algorithm)——就是对求解问题步骤的一种描述。是解决问题的一个策略。 一个算法必须满足以下五个重要特性: 一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。 算法中每一条指令必须有确切的含义。不存在二义性。且在每种情况下,算法只有唯一的一条执行路径。 算法是可以被执行的,即算法描述的操作都可以通过已实现的基本运算执行有限次来实现的。 (1)有穷性 (2)确定性 (3)可行性 与程序的区别 1.2基本概念和术语 一般说来,需要考虑如何设计数据结构的程序,要处理的对象往往是大量的数据; 因此在计算机上编程实现时要考虑数据在内存中的存储形式; 在内存中数据的存储结构有两种,一种是全部数据占据连续的内存空间,称之为顺序存储结构;一种是通过指针将数据链接起来,称之为链式存储结构。 1.3 抽象数据类型 1.3 抽象数据类型 抽象数据类型(Abstract Data Type,ADT):指一个数学模型及定义在该模型上的一组操作。 本书是从抽象数据类型的角度,分别讨论线性表、栈、队列、字符串、数组、树、二叉树、图等数据结构及其应用的。 抽象数据类型的核心在于抽象二字,与具体的计算机语言无关。 再高级的思想都要“落地生根”,都要在计算机中实现,因此,我们还是要依托某种“计算机语言”来实现各种数据结构 1.3 抽象数据类型 目前用来描述“抽象数据类型”的最理想的工具是“类”,即C++或者java中类的概念; 然而,就当前大家对计算机语言的掌握程度,应该说是“C语言”掌握的最好;所以采用C语言描述的数据结构教材最适合大多数同学; 学有余力的同学可以结合C++或者其他语言中的“类”来实现数据结构。 1.3 抽象数据类型 抽象数据类型的定义格式: 抽象数据类型名 { 数据对象:对数据对象

文档评论(0)

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

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

1亿VIP精品文档

相关文档