第6章-树和二叉树.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构—C++实现缪淮扣 沈 俊 顾训穰上海大学 计算机工程与科学学院2014年6月第6章 树和二叉树树的概念二叉树二叉树的存储结构遍历二叉树线索二叉树二叉树的应用树和森林的实现等价类及其表示6.1 树的概念树的概念 树(tree)T是一个包含n(n=0)个数据元素的有限集合。并且有:(1)当n=0时,T称为空树;(2)如果n0,则树有且仅有一个特定的被称为根(root)的结点,树的根结点只有后继,没有前驱;(3)当n1时,除根结点以外的其余结点可分为m(m0)个互不相交的非空有限集T1、T2、...、Tm,其中每一个集合本身又是一棵非空树,并且称它们为根结点的子树(subtree)。树的概念树的术语1.结点2.结点的度3.终端结点4.非终端结点5.树的度6.孩子和双亲7.兄弟树的术语8.祖先9.子孙10.结点的层次11.树的深度12.堂兄弟13.有序树14.无序树15.森林树的表示形式1、树形表示法2、嵌套集合表示法3、凹入目录表示法4、广义表形式的表示法树的基本操作(8)Assign (x,d)(9)InsertChild ( x,d )(10)DeleteChild ( x,i )(11)DeleteSubTree ( x )(12)IsEmpty ( )(13)Travers( )(1)Root ( )(2)CreateRoot ( d )(3)Parent( x )(4)FirstChild ( x )(5)NextSibling ( x, y )(6)PreSibling ( x, y ) (7)Retrieve ( x )6.2 二叉树 二叉树的定义 : 二叉树BT是有限个结点的集合。当集合非空时,其中有一个结点称为二叉树的根结点,用BT表示,余下的结点(如果有的话)最多被组成两棵分别被称为BT的左子树(left subtree)和右子树(right subtree)、互不相交的二叉树。 二叉树的五种形态 :二叉树的性质性质1:有n(n0)个结点的二叉树的分支数为n-1。证明:因为在二叉树中,除根结点以外的其它每个结点有且仅有一个父结点。而子结点与父结点间有且只有一条分支,因此对于有n(n0)个结点的二叉树,其分支的数目为n-1。二叉树的性质性质2:若二叉树的高度为h(h≥0),则该二叉树最少有h个结点,最多有2h-1个结点。证明:因为在二叉树中,每一层至少要有1个结点,因此对于高度为h的二叉树,其结点数至少为h个。在二叉树中,第一层只有一个根结点;又因为每个结点最多有2个孩子结点,所以第i层的结点最多为2i-1个,所以高度为h(h≥0)的二叉树结点总数最多为:20 + 21 + … + 2h-1 = 2h - 1二叉树的性质性质3:含有n个结点的二叉树的高度最大值为n,最小值为?log2(n+1) ? 。证明:因为在二叉树中,每层至少有一个结点,因此对于含有n个结点的二叉树,其高度不会超过n。根据性质2可以得知,高度为h的二叉树最多有2h-1个结点,即n≤2h-1,因此h≥log2(n+1)。由于h是整数,所以h≥?log2(n+1)?。二叉树的性质满二叉树的定义:若高度为h的二叉树具有最大数目(2h-1个)的结点,则称其为满二叉树(full binary tree )。完全二叉树的定义:若高度为h的二叉树,除第 h 层外,其它各层 (1 ? h-1) 的结点数都达到最大个数,并且第 h 层的结点是自左向右连续分布的。则称它为完全二叉树(complete binary tree )。二叉树的性质性质4:具有 n 个结点的完全二叉树的高度为?log2(n+1)? 。证明:设完全二叉树的高度为h,则由性质2得:2h-1-1<n≤2h -12h-1<n+1≤2h 不等式中的各项取对数得:h-1<log2(n+1)≤h。因为h为整数,所以h=?log2(n+1)?。二叉树的性质性质5:如果将一棵有n个结点的完全二叉树自顶向下,同一层自左向右连续给结点编号0、1、2、…、n-1。则有以下关系:(1)若i=0,则 i 无双亲,若i>0,则 i 的双亲为?i/2?-1;(2)若2*i+1n,则 i 的左孩子为2*i+1;(3)若2*i+2n,则 i 的右孩子为2*i+2;(4)若i为偶数,且i≥1,则 i 是其双亲的右孩子,且其有编号为i-1左兄弟;(5)若i为奇数,且i<n-1,则 i 是其双亲的左孩子,且其有编号为i+1右兄弟。二叉树的性质证明:此性质可以用归纳法证明,在此先证明其中的(2)和(3)。 当i=0时,由完全二叉树的定义得知,如果2*i+1=1n,说明二叉树中存在两个或两个以上的结点,所以结点i的左孩子存在且编号为1;反之,如果2*i+1=1=n,说明二叉树中只有一个结点i,结点i的左孩子结点不存在。同

文档评论(0)

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

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

1亿VIP精品文档

相关文档