L第十二讲(二叉树的性质及其遍历).ppt
《L第十二讲(二叉树的性质及其遍历).ppt》由会员分享,可在线阅读,更多相关《L第十二讲(二叉树的性质及其遍历).ppt(34页珍藏版)》请在三一办公上搜索。
1、数据结构与算法-第十二讲,北方民族大学计算机科学与工程学院王伦津 研究员,二叉树的性质及其遍历,12、二叉树的性质及二叉树的遍历,本讲给出二叉树基本性质的七个定理的证明,介绍二叉树的前序遍历、中序遍历、后序遍历和层序遍历思想,和二叉树的存储结构。本讲的基本要求是:掌握二叉树的性质及其遍历思想,目 录,12.1二叉树的基本性质 12.1.1 定理1 满二叉树第i层上恰有2i-1个结点。(i1)12.1.2 定理2 二叉树的第i层上结点个数不超过2i-1 个。(i1)12.1.3 定理3 深度为k的满二叉树有2k-1个结点。12.1.4 定理4 深度为k的二叉树,至多有2k-1 个结点。12.1.
2、5 定理5 对任意一棵二叉树,有n0=n2+1,n=2n0+n1-1,其中,n0,n1和n2分别为度为0、1和2的结点的数目,n 表示结点总数。12.1.6 定理6 具有n个结点的二叉树的深度为log2n+1。,12.2 二叉树的遍历12.3 二叉树的存储结构12.3.1 顺序存储结构12.3.2 链式存储,12.1.7 定理7 若对一棵有n个结点的顺序二叉树的结点按层序编号,则对任一结点i(1in),有(1)若i=1,则结点i是根,无父亲;若i1,则其父亲是结点i/2。(2)若2in,则结点i无左儿子(从而也无右儿子,为叶子);否则i的左儿子是结点2i。(3)若2i+1n,则结点i无右儿子;
3、否则右儿子是结点2i+1。,12.1 二叉树的基本性质,证:使用归纳法。i=1时,结论显然成立。设i=k时结论成立,则考虑i=k+1的情形。由于(k+1)层上结点是k层上结点的儿子,而且满二叉树每个非叶子结点恰好有两个儿子,故(k+1)层上结点个数为k层上结点个数的2倍,即22k-1=2k=2(k+1)-1.这表明,i=k+1时结论也成立。由归纳法原理,结论对任意的k都成立,证毕。,定理 1:满二叉树第i层上恰好有2i-1个结点(i1).,证:结点总数(定理 1)2k-1.证毕。,定理 2:二叉树的第i层上结点个数不超过2i-1.(i1).,事实上,这是定理 1的直接推论,因为任何二叉树,只有
4、满二叉树的结点最多。,定理 3:深度为k的满二叉树有2k-1个结点。,证:显然,n=n0+n1+n2另一方面,由于二叉树除根外每个结点恰好有一个前趋,所以,非根结点恰与分枝一一对应,故有 n=B+1(分支实际上就是树中的连线)这里,B为分枝数目。又分枝是由度为1和2的结点射出的,故有 B=n1+2n2 结合上面三式,即可导出n0=n2+1与n=2n0+n1-1,定理 4:深度为k的二叉树,至多有(2k-1)个结点。,此乃定理 3的直接推论。,定理 5:对任一棵二叉树,有 n0=n2+1 n=2n0+n1-1这里,n0、n1和n2分别为度为0、1和2的结点的数目,n表示结点总数。,证:设k为顺序
5、二叉树的深度,由定理 4知 n 2k-1 由于这里n与2k均为整数,故nlog2n(a)另一方面,由于是顺序二叉树,去掉最后一层后必为满二叉树,故(k-1)层以上结点总数为2k-1-1,因此有n2k-1-1。由于n与2k-1均为整数,为2k-1-1加一后,有可能与n相等,但不会变得大于n,故n2k-1,即 klog2n+1.(b)现在,我们已得到(a)与(b)两式,即 log2n klog2n+1由于k为整数,故必有k=log2n+1(见图 120),定理 6:具有n个结点的顺序二叉树的深度为log2n+1(这里,符号x表示不大于x的最大整数)。,定理 7:若对一棵顺序二叉树的结点按层序编号(
6、即从根所在层起,依次从层号较小的层到层号较大的层、同层从左到右,给各结点依次编以连续的号码),则对任一结点i(1in,n为结点数目,1为根的编号),有(a)若i=1,则结点i是根,无父亲,若i1,则其父亲的编号为i/2;(b)若2in,则结点i无左儿子(从而也无右儿,为叶子),否则i的左儿子的编号为2i。(c)若2i+1n,则结点i无右孩子,否则它的右孩子结点的编号为2i+1。,11,9,10,上述是两种顺序二叉树,从根结点开始编号,我们发现所有左结点编号均为偶数,所有右结点均为奇数。还有两种顺序二叉树一种就是满二叉树,一种是缺一个元素即为满二叉树的情况。它们的编号同样满足上面的规律。,证:先
7、证(b)和(c),用归纳法。当i=1时,结论是显然的。现设i=k时结论(b)成立,考虑i=k+1的情形。若k结点无左儿子或无右儿子,则(k+1)亦必为叶子(否则就不是顺序二叉树了),故证明(b)时无需考虑此情况,而只需考虑k有两个儿子的情况。先考虑k与k+1在同一层上,则由顺序二叉树的结构知,若(k+1)有儿子,则必然出现在下一层上k的两个儿子的紧右边,由于k的两个儿子的编号为2k与2k+1(归纳假设),故(k+1)若有左儿子,则编号为(2k+1)+1即2(k+1),这表示i=k+1时结论成立;,若k+1有右儿子(当然也有左儿子),则编号为(2k+1)+2,即2(k+1)+1,这表明(iii)
8、在k+1时仍成立。再考虑k与k+1不在同一层的情况,此时,k必在它所在层的最右,而k+1必在下一层的最左,由于顺序二叉树编号是编完上层最右结点时从下层最左结点起编号,所以若k+1有儿子,则编号必然为(2i+1)+1与(2i+1)+2,这与k与k+1位于同层的情况相同。至于(a),则可由(b)与(c)的式子变换而来,证毕。,12.2 二叉树的遍历的概念,(一)基本概念 遍历就是无重复无遗漏的访问。对于树的遍历,是指按一定方式访问树中的结点,使得每个结点恰好被访问一次。访问方式是指访问次序。假定执行访问机构是单处理机的,任何时刻只能对一个目标进行访问,所以,访问的轨迹是被访问结点的线性序列,即遍历
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十二 二叉 性质 及其 遍历
链接地址:https://www.31ppt.com/p-5597317.html