第二章jiu常用数据结构及其运算2.ppt

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

第2章 常用数据结构及其运算 2.5 树与二叉树 2.5.1 树及其基本概念 2.5.2 树的存储结构 2.5.3 二叉树 二叉树的定义及其存储结构 二叉树的性质 树与二叉树的转换 二叉树的遍历 2.5.4 哈夫曼树及其应用 2.6 图 2.6.1图及其基本概念 2.6.2图的存储结构 邻接矩阵 邻接表 2.6.3图的遍历 2.6.4图的应用 习题 2.5 树与二叉树 2.5.1 树及其基本概念 2.5.2 树的存储结构 2.5.3 二叉树 2.5.4 哈夫曼树及其应用 2.5 树与二叉树 2.5.1 树及其基本概念 树型结构是一种应用十分广泛的非线性数据结构,它很类似自然界中的树,直观地讲,树型结构是以分支关系定义的层次结构。 如图2-1所示的树中,A为根结点,其余的结点分为三个互不相交的有限集合:T1={B,E,F},T2={C,G,J},T3={D,H,I}。T1、T2和T3都是A的子树,而它们本身也是一棵树。例如,T1是一棵以B为根的树,其余结点分为互不相交的两个集合{E}和{F},而{E}和{F}本身又是仅有一个根结点的树。 下面结合图2-1,给出树型结构中的一些基本术语。 结点:表示树中的元素。 结点的度:一个结点拥有的子树数目。如A结点的度为3,它有三个子树T1、T2和T3。E、F结点的度为0,它们没有子树。 叶子:度为零的结点称叶子或终端结点。 双亲(parent):一个结点是它的那些子树的根的双亲结点。 孩子(child):除根结点外每个结点都是其前趋结点的孩子。 兄弟(sibling):同一个双亲的孩子之间互为兄弟。如A是B、C、D的双亲;B、C、D是A的孩子;B、C、D互为兄弟。 结点的层次:根结点的层数为1,其它任何结点的层数等于它的父结点的层数加1。 树的深度:一棵树中,结点的最大层次值就是树的深度。图3-1中树的深度为4。 森林:森林是m(m≥0)棵互不相交的树的集合。 树的度:一棵树上所有结点的度的最大值就是这棵树的度。 有序树:树中结点在同层中按从左到右有序排列、不能互换的称为有序树,反之,称为无序树。 2.5.2树的存储结构 树的存储结构根据应用可以有多种形式,这里只讨论 链式存储结构。对于链表中每个结点结构的设计可以有 两种形式: a.根据每个结点的子树数设置相应的指针域,结点 是异构的。 b.每个结点的指针域均为树的度数,结点是同构 型,这种形式运算方便,但很浪费空间。 分析:假设有一棵具有n个结点的k叉树,则有nk个指针域,其中有用的指针域为n-1个,因此空链域的个数为:nk-(n-1)=n(k-1)+1个。 对k值进行讨论: n(k-1)+1 nk k值无限大时:1 k=3 2/3 k=2 1/2 2.5.3 二叉树 一、二叉树的定义及其存储结构 二、二叉树的性质 三、特殊形式的二叉树 四、树与二叉树的转换 五、二叉树的遍历 2.5.3 二 叉 树 一、二叉树的定义及其存储结构 1.二叉树的定义 一个二叉树是一个有限结点的集合,该集合或者为空,或由一个根结点和两棵互不相交的被称为该根的左子树和右子树的二叉树组成。 这是一个递归定义,由定义可知二叉树有下面两个主要特点: (1) 每个结点最多只能有两个孩子,即二叉树中不存在度大于2的结点。 (2) 二叉树的子树有左、右之分,其次序不能任意颠倒。二叉树可以有五种基本形态,如图2-3所示。 例2-1 画出具有3个结点的树和二叉树的所有不同形态。 解:(1) 具有3个结点的树有2种不同的形态,如图2-4所示。 (2) 具有3个结点的二叉树有5种不同的形态,如图2-5所示。 注意:树和二叉树的区别主要是二叉树的结点的子树要区分左子树和右子树,即使在结点只有一个子树的情况下,也要明确指出该子树是左子树还是右

文档评论(0)

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

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

1亿VIP精品文档

相关文档