- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构与C++算法设计案例教程赖俊峰第六章课件教学.ppt
第六章 二叉树和树 任务一 二叉树 子任务1 二叉树的概念和性质 子任务2 二叉树的存储 子任务3 二叉树的遍历 子任务4 哈夫曼树 子任务1 二叉树的概念和性质 1.二叉树的概念 二叉树是由结点的有限集合构成,这个有限集合或者为空集,或者同时满足以下两个条件: (1) 有且仅有一个被称为根的结点; (2) 其余的结点被分为两个互不相交的子集T1和T2、,并且T1和T2都分别是二叉树,称为根的左子树和右子树。 图6-1、2即为一棵二叉树。 2.二叉树的相关术语 (1)结点—— 表示树中的元素,包括数据项及若干指向其子树的分支。 (2)结点的度—— 结点拥有的子树数。 (3)叶子—— 度为0 的结点 。 (4)孩子—— 结点子树的根。 (5)双亲—— 孩子结点的上层结点。 (6)兄弟—— 同一双亲的孩子 。 (7) 二叉树的度—— 棵树中最大的结点度数 。 (8)结点的层次—— 从根结点算起,根为第一层,它的孩子为第二层……。 (9)深度—— 树中结点的最大层次数 。 (10)满二叉树 如果一棵二叉树的所有分支结点都有左右两棵非空子树,且所有叶子结点都在同一层上,则这棵二叉树称作满二叉树,如图5-3(a)所示。 在满二叉树中不存在度数为1的结点,每个分支结点均有两棵高度相同的子树,且树叶都在最下一层上。 (11)完全二叉树 如果一棵二叉树最多只有最下面的两层结点度数可以小于2,并且最下面一层的结点都集中在该层最左边的连续位置上,则此二叉树称作完全二叉树,如图6-3(b)。 完全二叉树中除最下面一层外,各层都被结点充满了,每一层结点个数恰是上一层结点的个数的2倍, 3.二叉树的五个性质 性质1 在一棵非空二叉树中,第i层上最多有2i-1个结点(i=1) 证明:利用数学归纳法 (1)当i = 1时,20 = 1,只有一个根结点,正确。 (2)现在假设对所有的j,1=j=i,命题成立,即第j层上最多有2j-1个结点。下面证明当就j = i时结论也成立。由归纳假设,第i-1层上最多有2i-2个结点。由于二叉树每个结点的度数最大为2,所以第i层上的最大结点数为第i-1层上的最大结点数的2倍,即2i-1个。 性质2 一棵深度为K(K=1)的二叉树最多有2k-1个结点(其中深度为二叉树中层数最大的叶子结点的层数)。 证明:由性质1可知,第i层的最大结点数为2i-1,所以 性质3 对于任何一棵非空的二叉树,若度为2的结点数为n2,则叶子结点数(度为0的结点数)n0=n2+1。 证明:设n1为二叉树T中度为1的结点数。 因为二叉树中所有结点的度均小于或等于2,所以其结点总数为: n=n0+n1+n2 又因为二叉树中,除根结点外,其余结点都只有一个分支进入,设B为分 支总数,则可得: n=B+1 由于分支是由度为1和度为2的结点射出,所以可得: B=n1+2n2 由上面的等式左右分别相加后整理可得: n=B+1=n1+2n2+1=n0+n1+n2 故推出结果: n0=n2+1 性质4 具有n个结点(n0)的完全二叉树的深度为└log2 (n+1) ┘ (其中└ x ┘表示“不大于x的最大整数”) 证明:假设深度为k,则根据性质2和完全二叉 树的定义,有如下式子成立: 2k-1 -1n=2k-1 不等式中各项取对数,于是得到 k-1 log2 (n+1) =k 。因为k为整数,所以k 为不大于log2 (n+1)的最大整数+1即 k=└log2 (n) ┘。 性质5 如果将一棵具有n个结点的完全二叉树,如果按从上至下和从左到右的顺序对其所有结点从1开始进行编号,则对任一编号为i(0≤i≤n)的结点X有: (1)若i=1,则结点X是根,无双亲结点,若i1,则X的双亲结点的编号为└i/2┘。 (2)若2i>n,则结点x无左孩子结点(且无右孩子结点);否则X的左孩子结点的编号为2i。 (3)若2i+1n,则结点无右孩子结点;否则,的右孩子结点的编号为2i+1。 证明:这里证明(2),(1) 和(3)即可由结论(2)推得。 对于i = 0,由完全二叉树的定义,其左孩子的编号是1,如果1n-1,即不存在编号为1的结点,此时结点i没有左孩子。其右孩子的编号只能是2,如果2n-1,此时结点i没有右孩子。 对于i0分两种情况讨论: (1) 设第j层的第一个结点编号为i(此时有i = 2j-1),则其左孩子必为第j + 1层的第一个结点,其编号为2j+1 - 1 = 2i + 1,如果2i
您可能关注的文档
- 数据结构C++版杨秀金第4章串-1课件教学.ppt
- 数据结构C++版杨秀金第5章数组和广义表-1课件教学.ppt
- 数据结构C++版)第二版)李根强第06章课件教学.ppt
- 数据结构C++版)第二版)李根强第07章课件教学.ppt
- 数据结构C语言版严蔚敏李冬梅吴伟民第2章线性表课件教学.ppt
- 数据结构C语言版严蔚敏李冬梅吴伟民第3章栈和队列课件教学.ppt
- 数据结构C语言版严蔚敏李冬梅吴伟民第5章树和二叉树课件教学.ppt
- 数据结构C语言版严蔚敏李冬梅吴伟民第6章图课件教学.ppt
- 数据结构C语言版严蔚敏李冬梅吴伟民第7章查找课件教学.ppt
- 数据结构C语言版严蔚敏李冬梅吴伟民第8章排序课件教学.ppt
原创力文档


文档评论(0)