第9章-数据结构基础.ppt

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

计算机科学导论数据结构基础引子数据结构的概念数据的逻辑结构数据的存储结构线性表树和二叉树数据结构的概念与定义数据结构的概念1、现实生活中存在一些由具有共同属性的元素组成的集合,如藏书集、学生名单集、季节名集;2、集合的组成元素之间存在某种关系;3、针对这个集合,存在一些必要的操作。数据结构的定义数据结构(DataStructure,DS)是指互相之间存在一种或多种关系的数据元素的集合。数据元素之间的关系称为结构,可以简单地用前后件关系(或直接前驱与直接后继关系)来描述。逻辑结构与存储结构数据的逻辑结构数据的逻辑结构指反映数据元素之间逻辑关系的数据结构。队伍中的前后关系部门间的隶属关系员工间的级别关系根据数据元素间逻辑关系的复杂程度,可把数据结构分为线性结构和非线性结构。线性结构非线性结构家谱非线性结构财大组织结构非线性结构城市交通里程非线性结构的定义非线性结构树树型结构是数据元素按分支关系组织起来的层次型结构,很象自然界中的倒置树,其数据元素之间存在一对多的关系。除叶子外,其他元素都可能有多个后继。非线性结构图图比树更为复杂,其数据元素之间存在多对多关系,任意两个元素之间都可能相关。图形结构也称作网状结构。在图形结构中,每个元素都可能有多个前驱或后继。非线性结构图图可分为有向图和无向图两类树与图的区别在树中,任一元素可能有多个后继,但只有一个前驱;而在图中,一个元素可能有多个前驱和多个后继。数据的存储结构数据结构中的数据元素必须保存在计算机的存储空间中才能被处理。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称为数据的物理结构)。数据元素之间的存储位置与他们的逻辑关系不一定相同。因此,在数据的存储结构中,可能既要存放各数据元素的内容,还要存放数据元素之间的前后关系。藏书的存放藏书逻辑上的前后关系由分类编号决定存储结构与逻辑结构一致存储结构与逻辑结构不一致数据的运算①在指定位置添加一个新元素(插入)②在数据结构中删除指定元素(删除)③在已有数据中寻找指定元素(查找)④对现有数据重新安排其逻辑顺序(排序)⑤对所有元素按某种次序访问一次(遍历)数据结构的作用将现实生活中的事物抽象出来,存储在计算机中并进行相关处理。因此,数据结构包含抽象出元素之间的逻辑关系存储元素间的逻辑关系保障数据处理的性能线性表线性表基本概念n个数据元素的有限序列(a1,a2,…,ai-1,ai,ai+1,…,an)ai-1称为ai的直接前驱(前件),ai+1称为ai的直接后继(后件)。a1称为线性表的根节点,an称为终端节点。n为线性表的长度。线性表顺序存储线性表的顺序存储是指按逻辑上的前后关系顺序存放线性表各元素的方式。线性表的顺序存储顺序线性表插入插入运算平均移动次数如果插入运算发生在线性表末尾,即在第n个元素之后插入,则移动次数为线性表删除删除运算平均移动次数如果删除运算发生在线性表末尾,即在第n个元素,则移动次数为顺序存储的问题在线性表的顺序存储中,插入或删除元素的效率很低,分别为n/2和(n-1)/2。当线性表较大时耗时较多。线性表链式存储在链式存储中,每个结点由两部分组成:一部分存放数据元素的内容(数据项);另一部分存放指针(指针项)。指针用于指向该结点的前一个或后一个结点(即前件或后件)。链式存储结点构成结点构成如下图所示,其中data为数据元素的内容,next为后继结点的存储地址,每个元素都如此。线性表的链式存储线性表的链式存储优点是插入和删除快,缺点是每个元素占用了更多存储空间。线性表链式存储示例栈和队列堆栈堆栈运算队列队列运算树的概念树是由n(n≥0)个元素(结点)组成的有限集合。若n=0,则称为空树。任何一棵非空树均满足以下两个条件:(1)仅有一个称为根的结点;(2)其余结点可分为m(m≥0)个互不相交的有限集合,其中每个集合又是一棵树,称为根的子树。树的相关概念树的相关概念示例二叉树二叉树的相关概念二叉树的相关概念满二叉树完全二叉树二叉树存储结构二叉树链式存储示例二叉树的遍历是指不重复地访问二叉树的所有结点。遍历二叉树就是要确定访问各结点的顺序,以便不重不漏地访问到二叉树的所有结点。在遍历二叉树的过程中,一般先遍历左子树,然后再遍历右子树。在先左后右的原则下,根据访问根结点的顺序,二叉树的遍历可以分为三种:前序

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档