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

大学计算机基础 黄卓 第7章 数据结构与算法新.ppt

大学计算机基础 黄卓 第7章 数据结构与算法新.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.1 数据结构的基本概念 7.2 算法 7.3 线性表及其顺序存储结构 7.4 线性链表、循环链表及其运算 7.5 栈和队列 7.6 树与二叉树 7.7 查找技术 7.8 基本排序技术 2. 循环队列及其运算 队列及其基本运算(二) 所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列结构中,当存储空间的最后一个位置已被使用而再要进行入队运算时,只要存储空间的第一个位置空闲,便可将元素加入到第一个位置,即将存储空间的第一个位置作为队尾。 rear front Q(1:m) …… m 2 1 树的基本概念 二叉树的基本概念 二叉树的链式存储结构 二叉树的遍历 树与二叉树 树的基本概念 树是一种简单的非线性结构,所有元素之间具有明显的层次特性。在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根。每一个结点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。 linkn … link2 link1 degree(度) value(值) 在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。树的最大层次称为树的深度。 二叉树的基本概念(一) 二叉树是结点的有穷集合,它或者是空集,或者满足下述两个条件: (1)有且仅有一个根结点。 (2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。 二叉树有以下基本性质: (1)在二叉树的第k层上,最多有2k-1(k≥1)个结点。 (2)深度为m的二叉树最多有2m-1个结点。 (3)度为0的结点(即叶子结点)总是比度为2的结点多一个。 (4)具有n个结点的二叉树,其深度至少为,其中表示取的整数部分。 1.二叉树的概念 二叉树的基本概念(二) (1)满二叉树。 所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。这就是说,在满二叉树中,每一层的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。 2.满二叉树与完全二叉树 (2)完全二叉树。 所谓完全二叉树是指这样的二叉树:除最后两层外,其余每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。 二叉树的链式存储结构 在计算机中,二叉树通常采用链式存储结构。与线性链表类似,用于存储二叉树中各元素的存储结点也由两部分组成:数据域与指针域。但在二叉树中,由于每一个元素可以有两个后件(即两个子结点),因此,用于存储二叉树的存储结点的指针域有两个:一个用于指向该结点的左子结点的存储地址,称为左指针域;另一个用于指向该结点的右子结点的存储地址,称为右指针域。 R(i) V(i) L(i) i Rchild Value Lchild 二叉树的遍历是指按某种次序系统地“访问”二叉树中的所有结点,使得每个结点均被访问一次,而且仅被访问一次。“访问”的含义很广,可以是对结点作各种处理,如输出结点的信息等。 二叉树的遍历 在遍历二叉树的过程中,一般先遍历左子树,然后再遍历右子树。在先左后右的原则下,根据访问根结点的次序,二叉树的遍历分为3种: (1)前序遍历(DLR):首先访问根结点,然后遍历左子树,最后遍历右子树。 (2)中序遍历(LDR):首先遍历左子树,然后访问根结点,最后遍历右子树。 (3)后序遍历(LRD):首先遍历左子树,然后访问遍历右子树,最后访问根结点。 查找技术的基本概念 顺序查找 二分法查找 查找技术 查找技术的基本概念 作为一种数据结构,查找表的逻辑结构是集合,它的基本运算包括查找、读表元素、插入和删除元素等。一个查找表是否包括插入和删除运算,将造成该查找表在适用范围和实现方法等方面的重大差别。 静态查找表是指查找表一经生成之后,便只对其进行检索(包括查找和读表元素),而不能进行修改(插入、删除)或者在进行了一段时间的检索之后集中地进行修改。 动态查找表则适用于检索与修改交叉进行、无法分成两个不相交的阶段的场合。 静态查找表最简单的实现方法是以顺序表作为存储结构,然后在这个存储结构上实现静态查找表的基本运算。在存储表示方面,这一实现方法与线性表的顺序实现类似。不同的是,当用顺序表作为线性表的存储结构时,存储结点间的位置关系对应于数据元素之间的逻辑关系(邻接关系)。但对静态查找表来说,由于其中的数据元素之间没有逻辑关系,各个数据元素在顺序表中的排列次序是任意的,即可任意排列。 顺序查找 顺序查找的方法是:从线性表的第一个元素开始,依次将线性表中的元素与被查找元素进行比较,若相等则表示找到(即查找成功);若线性表中所有的元素都与被查找元素

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档