网站大量收购独家精品文档,联系QQ:2885784924

第08章数据结构.ppt

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

第八章 数据抽象 8.1 数据结构基础 程序设计的实质 8.1.1 基本数据结构 同构数组:元素具有相同的类型 int student[30] int Scores[2][9] 下标 异构数组:其元素具有不同的类型的数据块 struct{ char Name[25]; int Age; float SkillRating; }Employee; int aa[20]; 定义一个有20个元素的一维数组。 int bb[4][5]; 定义一个4行5列的二维数组。 aa[0]=65; aa[19]=133; bb[0][0]=65; bb[3][4]=133; 给数组元素赋值。 四类基本的结构 根据数据元素间关系的不同特性,通常有下列四类基本的结构: ⑴集合结构:在集合结构中,数据元素间的关系是“属于同一个集合”。集合是元素关系极为松散的一种结构。 ⑵线性结构:该结构的数据元素之间存在着一对一的关系。 ⑶树型结构:该结构的数据元素之间存在着一对多的关系。 ⑷图型结构:该结构的数据元素之间存在着多对多的关系,图形结构也称作网状结构。 四类基本结构的示意图 表、栈、队列和树 表:数据项按顺序排列的数据结构 队列的入队和出队示意图 树 基本术语 结点(node):表示树中的元素 根结点:树顶部的结点 叶子结点(leaf):与根对应的另一端点处的结点 子结点(child):一个结点的直接后代 父结点(parents):一个结点的直接祖先 兄弟(sibling):有同一个父结点的那些结点 结点的度数:从叶子结点算起,叶子结点度数为0,它的父结点度数为1…… 树的度:一棵树中最大的结点度数 结点的层次(level):从根结点算起,根为第一层,它的孩子为第二层…… 深度(depth)——树中结点的最大层次数,或者从根到叶子的最长路径上的节点数 二叉树 为了用户不用关心实际数据存储的细节 (存储单元和地址),构造栈、队列和数组等数据结构抽象工具 抽象数据结构:静态数据结构,动态数据结构 静态数据结构:不容易做结构的变化。 动态数据结构:易于做结构的变化操作:例如:表是否会改变长度 8.1.4 指针 指针用于实现动态结构 练习 下列二叉树中有几个叶子节点,树的深度为多少? 8.2 数据结构的实现 数组的存储: 同构数组: 一维数组 二维数组 异构数组 表的存储 栈和队列的存储 二叉树的存储 8.2.1 数组的存储 二维数组-同构数组(行优先) 数组的存储——异构数组 数组的存储——异构数组 顺序存储:邻接表 链式存储:链表 链表:邻接表的链式存储 在链表中插入 从链表中删除 8.2.3 栈和队列的存储-顺序存储 不用指针的存储-顺序存储 练习:写出下列二维数组在主存中的存放 练习:写出下列二维数组在主存中的存放 8.3 一个简短案例的研究 一个按字母顺序排列名单的存储方案有如下操作: 查找一个项 按字母顺序打印名单 插入一个新项 存储结构 首先考虑存储结构: 链表-串行搜索-效率问题 二叉树-二叉有序树-二分搜索 查找一个项-搜索字母J的过程 按字母顺序打印出一个查找树 插入一个新项:把M 插入树中 8.4 定制的数据类型 用户自定义数据类型 例如: define type EmployeeType to be {char Name[25]; int Age; real SkillRating; } top 进栈 A top 出栈 栈满 B C D E F top top top top top top top top top top top 栈空 base=0 1 2 3 4 5 0 栈空 top=0 1 2 3 4 5 0 base 1 2 3 4 5 0 A B C D E F base 8.2.4 二叉树的存储-链式 左指针 存储单元 右指针 A B C D E F G ^ ^ ^ ^ ^ ^ ^ ^ A B C D E F G 左指针 存储单元 右指针 根结点 第2层 第3层 实际的存储结构 概念树 不用指针的存储-顺序存储 根结点 第2层 第3层 实际的存储结构 概念树 第4层 a00 a01 ……a0,n-1

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档