[理学]程序设计基础第五章.pptVIP

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[理学]程序设计基础第五章

程序设计基础课件 第五章 数据结构基础 程序离不开数据结构 线性结构 树型结构 图型结构 查找与排序 习题解析 5.1 程序离不开数据结构—数据模型 数学模型定义 数学模型是关于部分现实世界和为一种特殊目的而作的一个抽象的、简化的结构。 数学模型分类 1、数值计算 2、非数值计算:控制、管理及数据处理等 5.1 程序离不开数据结构—数据结构 数据结构在非数值型的问题中的应用 1、在城市交通运输中,从A点到B点有很多条道路,每条道路的长度不同,拥挤程度不同,我们要选择一条最快的线路到达目的地,该如何选择?(单源最短路径问题) 2、北京市有上千万的人口,我们应该怎样保存这些人口的资料信息,才能使我们可以快速查找到所需要查找的人? 在上述例子中,我们感兴趣的是如何提高效率。为了解决这些问题,就必须了解待处理对象之间的关系,以及如何存储和表示这些数据。 数据 客观事物的名称、数量、特征、性质的描述方式(即编码),是计算机所能处理的一切符号的总称。 数据结构 数据结构里包括一批的数据(可以是简单的数据,也可以是复杂的、多个数据项形成),是数据的一个集合。数据结构中每个数据个体称为数据元素,它是数据的基本单位。 数据结构研究的内容 数据的逻辑结构、数据的存储结构和数据的运算。 数据的逻辑结构 数据元素之间的逻辑关系,与数据在计算机内部如何存储无关,数据的逻辑结构独立于计算机。 数据的逻辑结构可分为: 1、线性结构:如顺序表、链表、栈和队列等有序结构。 2、非线性结构:如树型结构、图型结构等层次性结构。 数据的存储结构 数据元素在计算机存储设备中的存储方式。包括数据本身在计算机中存储方式,以及数据之间的逻辑关系在计算机中的表示。 数据存储方式可分为:顺序存储方式和链式存储方式。 (存储)结点:用来存储一个数据结点的存储单元。例如在学生名单中,我们可以认为一个学生数据就是一个结点,如果学生名单有1000人组成,我们就可以抽象地认为,学生名单这样的线性表就是由1000个结点组成的。 数据的运算 1、插入(insert):在数据结构指定位置上添加一个新结点。 2、删除(delete):删除数据结构指定位置的结点。 3、更新(update):修改数据结构中某个结点的值。 4、查找(Find):在数据结构中查找满足指定条件的结点。 5、排序(sort):按照指定的顺序对结点进行排列。 5.2 线性结构—线性表 线性表定义 线性表是n(n≥0)个数据元素组成的有限序列,记为:(a1,a2,……,an)。 当n=0时,线性表为空表。 在线性表中,除了第一个和最后一个数据元素外,每一个数据元素都有一个直接前趋结点(它的前一个结点 )和一个直接后继结点(它的后一个结点)。 线性结构的基本运算 1、求表长; 2、在线性表的指定位置插入一个数据元素; 3、删除线性表中指定位置的数据元素; 4、取线性表中指定位置的数据元素。 以管理仓库设备清单为例:工厂有时会根据需要,从仓库调出一台设备,或者新购进一批设备以备工程使用,对设备清单表而言,就是要进行删除或添加操作,这就转化为对线性表的运算。 线性结构的存储结构 1、顺序存储结构:用一组地址连续的存储空间,依次存放线性表中的每一个数据元素,用这种方法存储的线性表称为顺序表。在高级语言中,可以用一维数组来实现。 线性结构的存储结构 2、链式存储结构:每一个数据结点独立保存在内存的一片连续区域之中,结点之间通过“链”相互连接,通过链来表示数据之间的先后次序关系。用这种方法存储的线性表称为链表。链式方式可以采用C语言中的结构来实现。 顺序表的插入操作 如果需要在顺序表的第i个结点之前插入新元素,需要腾空第i个结点:从最后一个结点开始到原来的第i个结点依次往后移动一个位置,再将待插入结点放入。顺序表长度+1。 顺序表的删除操作 如果需要删除顺序表的第i个元素,需要将第i个元素之后的所有元素向前移动一个位置,顺序表长度-1。 链表的插入操作 在链表的第i个元素之后插入新元素,只需要:将待插入元素指针指向第i个元素的后一元素,再将第i个元素的指针指向待插入元素即可。 链表的删除操作 删除链表的第i个元素:将第i-1个元素指针指向第i+1个元素,再将第i个元素释放。 线性表的插入删除性能 顺序存储的线性表过分强调数据元素的逻辑顺序和存储位置的对应。它的插入或删除需要进行多次的元素移动,当元素个数庞大时,每次插入与删除将花费许多时间进行移动操作。 链式存储的线性表则适用于动态场合,插入和删除操作相对灵活。但查找时需要从头开始遍历查询,同时,由于结点增加了指针域,导致空间开销较顺序表大。 5.2 线性结构—栈 栈的定义 栈(Stack)是一种运算受限的线性表:仅允许在表的栈顶一端进行插入和删除

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档