C语言数据结构第01讲绪论.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文档。上传文档
查看更多
C语言数据结构第01讲绪论

绪论;绪论;目录;1-1 数据结构研究的内容 数据结构研究的内容 用计算机解决具体问题需要经过的步骤: (1)从具体问题抽象出适当的数学模型; (2)设计解数学模型的算法; (3)编制程序、运行并调试程序,直到解决实际问题。; 【例1-1】学生入学情况登记问题 表1-1 学生入学情况简表;【例1-2】井字棋对奕问题; 【例1-3】七桥问题;1-2 数据的逻辑结构;3.数据项(Data Item) 数据项是数据不可分割的、具有独立意义的最小数据单位,是对数据元素属性的描述。数据项也称为域,或字段(Field)。 4.数据对象(Data Object) 数据对象是性质相同的数据元素的集合,是数据的一个子集。 例如在“学生入学情况表”中,数据对象就是全体学生记录的集合。 5.数据逻辑结构(Data Structure) 数据的逻辑结构是相互之间存在的一种或多种特定关系的数据元素的集合。;(1)集合——结构中数据元素之间,除了“同属于一个集合”关系之外,别无其它关系。 (2)线性结构——结构中的数据元素之间存在着“一对一”的关系。 (3)树形结构——结构中的数据元素之间存在着“一对多”的关系。 (4)图形结构——结构中的数据元素之间存在着“多对多”的关系。 ; 图1-4所示为四类基本数据结构的示意图;1-2-2 逻辑结构的描述;【例1-5】一种数据结构Tree=(D,R),其中: D={01,02,03,04,05,06,07,08,09,10} R={r} r={01,02,01,03,01,04,02,05,02,06, 02,07,03,08,03,09,04,10};【例1-6】一种数据结构 graph=(D,R),其中: D= {a,b,c,d,e} R={r} r={(a,b),(a,d),(b,d),(b,c),(b,e), (c,d),(d,e)} 圆括号表示的关系集合是无方向的,如(a,b)表示从a到b之间的边是双向的。其特点是各个结点之间都存在着多对多(M:N)的关系,即每个结点都可以有多个直接前驱或多个直接后继,如图1-7所示,我们把具有这种特点的数据结构叫做图形结构,简称图。;图1- 7 图形结构;1-3 数据的存储结构;;2. 链式存储 借助指示元素存储地址的指针(Pointer)来表示数据元素之间的逻辑关系。 例如,图1-9为表示复数z=2.0+4.8i的链式存储结构。 其中地址2000存放实部,地址2100存放虚部,实部与虚部的关系用值为”2100”的指针来表示(本例仅仅是为了简化讨论而作的一个引例,实际应用中,像复数这样简单的结构并不需要采用链式存储结构)。;3. 索引存储 索引存储是在原有存储数据结构的基础上,附加建立一个索引表,索引表中的每一项都由关键字(能唯一标识一个结点的数据项)和地址组成。索引表反映了按某一个关键字递增或递减排列的逻辑次序,主要作用是为了提高数据的检索速度。 4. 散列存储 散列存储是通过构造散列函数来确定数据存储地址或查找地址的。;1-4 算法和算法分析 ; 3. 算法与程序的区别 (1)一个算法必须在有穷步之后结束;一个程序不一定满足有穷性。 (2)程序中的指令必须是机器可执行的,而算法中的指令则无此限制。 (3)算法代表了对问题的求解过程,而程序则是算法在计算机上的实现。算法用特定的程序设计语言来描述,就成了程序。 (4)算法与数据结构是相辅相承的。 ;4. 一个好算法应达到的目标 (1)正确性:算法应能满足设定的功能和要求 。 (2)可读性:思路清晰、层次分明、易读易懂 。 (3)健壮性:输入非法数据时应能作适当的反应和处理。 (4)高效性:执行同一问题时时间越短,算法的效率就越高。 (5)低存储量:完成同一功能,占用存储空间应仅可能少。;1-4-2 算法的效率 事后统计法 事先估算法 (1)使用何种程序设计语言; (2)采取怎样的 算法策略; (3)算法涉及的问题的规模; (4)编译程序产生的目标代码的质量; (5)机器执行指令的质量。;1-4-3 算法效率的评价;一个算法所需的执行时间就是该算法中所有语句执行次数之和。 渐进时间复杂性:当n逐渐增大时T(n)的极限情况,一般简称为时间复杂度。 时间复杂度: 时间复杂度常用数量级的形式来表示, 记作T(n)=O(f(n))。 其中,大写字母O为Order(数量级)的字头,f(n)为函数形式,如T(n)=O

文档评论(0)

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

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

1亿VIP精品文档

相关文档