数据结构第六章 树.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 树 本章中主要介绍下列内容: 树的逻辑定义和存储结构 二叉树的逻辑定义、存储结构 二叉树的基本操作算法 树和二叉树的转换 哈夫曼树及其应用 6.1 树的概念与定义 6.2 二叉树 6.3 二叉树的遍历 6.4 线索二叉树(选修) 6.5 树与森林 6.6 哈夫曼树及其应用 家谱结构: 6.1 树的概念 6.1.1 树的定义 定义: 树是一种常用的非线性结构。我们可以这样定义:树是n(n≥0)个结点的有限集合。若n=0,则称为空树; 1)否则,有且仅有一个特定的结点被称为根, 2)当n1时,其余结点被分成m(m0)个互不相交的子集T1,T2,...,Tm,每个子集又是一棵树。 由此可以看出,树的定义是递归。 图 6-1 树逻辑结构: 树中任一结点都可以有零个或多个后继(即孩子)结点,但至多只能有一个前驱(即双亲)结点。 只有根结点无前驱; 只有叶结点无后继; 树的多种多种表示: 结点 数据元素的内容及其指向其子树根的分支统称为结点。 结点的度 结点的分支数,也即子树的个数。 树的度 树中所有结点度的最大值。 终端结点(叶子) 度为0的结点。 非终端结点(分支结点) 度不为0的结点。 内部结点 除根结点外的分支结点 在树结构中,结点之间的关系又可以用家族关系描述,定义如下: 孩子、双亲 结点子树的根称为这个结点的孩子,而这个结点又被称为孩子的双亲。 兄弟 同一个双亲的孩子之间互为兄弟。 堂兄弟 双亲在同一层的结点互为堂兄弟。 路径及其长度 若树中存在一个结点序列K1,K2…Kj,使得Ki是Ki+1(1=ij)的双亲,则称该结点的序列是从K1到Kj的一条路径或道路;经过边的数目为路径的长度。 树的基本概念与术语(三) 子孙 以某结点为根的子树中的所有结点都被称为是该结点的子孙。 祖先 从根结点到该结点路径上的所有结点。 结点的层次 树中根结点的层次为1,除根结点外,其他结点的层数等于双亲结点的层数加1。 根结点子树的根为第2层,以此类推。 树的深度 树中所有结点层次的最大值。 有序树、无序树 如果树中每棵子树从左向右的排列拥有一定的顺序,不得互换,则称为有序树,否则称为无序树。 森林 是m(m≥0)棵互不相交的树的集合。 6.2 二叉树 6.2.1 二叉树的定义和基本运算 定义:它与树形结构的区别是: (1)每个结点最多有两棵子树; (2)子树有左右之分。 二叉树也可以用递归的形式定义。即:二叉树是n(n≥0)个结点的有限集合。当n=0时,称为空二叉树;当n0时,有且仅有一个结点为二叉树的根,其余结点被分成两个互不相交的子集,一个作为左子集,另一个作为右子集,每个子集又是一个二叉树。 二叉树的5种形态: 6.2.2 二叉树的4个重要性质 【性质1】 在二叉树的第i层上最多有2i-1个结点(i≥1)。 二叉树的第1层只有一个根结点,所以,i=1时,2i-1=21-1 =20=1成立。 假设对所有的j,1≤ji成立,即第j层上最多有2j-1个结点成立。若j=i-1,则第j层上最多有2j-1=2i-2个结点。只要证明j=i时,命题成立。 由于在二叉树中,每个结点的度最大为2,所以可以推导出第i层最多的结点个数就是第i-1层最多结点个数的2倍,即2i-2*2 =2i-1。 【性质2】 深度为K的二叉树最多有2K-1个结点(K≥1)。 证明:假设度为1的结点个数为n1,结点总数为n,B为二叉树中的分支数。 因为在二叉树中,所有结点的度均小于或等于2,所以结点总数为: n=n0+n1+n2 (1) 再查看一下分支数。在二叉树中,除根结点之外,每个结点都有一个从上向下的分支指向,所以,总的结点个数n与分支数B之间的关系为: n=B+1。 又因为在二叉树中,度为1的结点产生1个分支,度为2的结点产生2个分支,所以分支数B可以表示为:B=n1+2n2。 将此式代入上式,得: n=n1+2n2+1 (2) 用(1)式减去(2)式,并经过调整后得到:n0=n2+1。 满二叉树: 如果一个深度为K的二叉树拥有2K-1个结点,则将它称为满二叉树。 满二叉树 完全二叉树:有一棵深度为h,具有n个结点的二叉树,若将它与一棵同

文档评论(0)

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

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

1亿VIP精品文档

相关文档