天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第六章 树和二叉树

第六章树和二叉树 树的概念和基本术语 二叉树 二叉树遍历 二叉树的计数 树与森林 霍夫曼树
第六章 树和二叉树 ▪ 树的概念和基本术语 ▪ 二叉树 ▪ 二叉树遍历 ▪ 二叉树的计数 ▪ 树与森林 ▪ 霍夫曼树

树的概念和基本术语 树的定义 树是由n(n≥0)个结点的有限集合。如 果n=0,称为空树;如果n>0,则 n有且仅有一个特定的称之为根(Ro的结 点,它只有直接后继,但没有直接前驱 当n>1,除根以外的其它结点划分为m (m>0)个互不相交的有限集T1,T2,,Tm 其中每个集合本身又是一棵树,并且称为 根的子树( SubTree)
树的概念和基本术语 树的定义 树是由 n (n 0) 个结点的有限集合。如 果 n = 0,称为空树;如果n > 0,则 ▪ 有且仅有一个特定的称之为根(Root)的结 点,它只有直接后继,但没有直接前驱; ▪ 当n > 1,除根以外的其它结点划分为m (m >0) 个互不相交的有限集 T1 , T2 ,…, Tm, 其中每个集合本身又是一棵树,并且称为 根的子树(SubTree)

例如 A A 只有根结点的树 06G0OO K 有13个结点的树 其中:A是根;其余结点分成三个互不相交的子集, T1={B,E,F,K,L}:T2={C,G}:T3={D,H,,J,M}, T1,T2,T3都是根A的子树,且本身也是一棵树
A C G B D E F K L H M I J 例如 A 只有根结点的树 有13个结点的树 其中:A是根;其余结点分成三个互不相交的子集, T1={B,E,F,K,L}; T2={C,G}; T3={D,H,I,J,M}, T1,T2,T3都是根A的子树,且本身也是一棵树

树的基本术语 A 1层 B 2层 height 0⊙O3层 K(L 4层 结点 结点的度*子女*祖先*树的深度 叶结点*双亲*子孙树的度 分支结点*兄弟*结点层次*森林
树的基本术语 1层 2层 4层 3层 height = 4 A C G B D E F K L H M I J 结点 结点的度 叶结点 分支结点 子女 双亲 兄弟 祖先 子孙 结点层次 树的深度 树的度 森林

二叉树( Binary tree 定义一棵二叉树是结点的一个有限集合, 该集合或者为空,或者是由一个根结点加 上两棵分别称为左子树和右子树的、互不 相交的二叉树组成。 特点每个结点至多只有两棵子树(二叉树中 不存在度大于的结点) 五种形态 R LR
二叉树 (Binary Tree) 定义 五种形态 一棵二叉树是结点的一个有限集合, 该集合或者为空,或者是由一个根结点加 上两棵分别称为左子树和右子树的、互不 相交的二叉树组成。 L R L R 特点 每个结点至多只有两棵子树(二叉树中 不存在度大于2的结点)

性质 性质1在二叉树的第i层上至多有2-1 个结点。(≥1)[证明用归纳法] 证明:当i=1时,只有根结点,21=20=1 假设对所有j,讠论1,命题成立,即第层 上至多有2H1个结点。 由归纳假设第i-1层上至多有22个结点。 由于二叉树的每个结点的度至多为2,故在 第层上的最大结点数为第-层上的最大结 点数的2倍,即2*21-2=21
性质1 在二叉树的第 i 层上至多有 2 i -1 个结点。(i 1) [证明用归纳法] 证明:当i=1时,只有根结点,2 i-1=2 0=1。 假设对所有j,i>j1,命题成立,即第j层 上至多有2 j-1 个结点。 由归纳假设第i-1 层上至多有 2 i -2个结点。 由于二叉树的每个结点的度至多为2,故在 第i层上的最大结点数为第i-1层上的最大结 点数的2倍,即2* 2i -2= 2 i-1。 性质

性质2深度为k的二叉树至多有2k-1 个结点(k≥1) 证明:由性质可见,深度为k的二叉树的 最大结点数为 ∑(第层上的最大结点数) = =∑211=20+21+…+2k=2k1
性质2 深度为 k 的二叉树至多有 2 k-1 个结点(k 1)。 证明:由性质1可见,深度为k的二叉树的 最大结点数为 = − k i i 1 1 2 =2 0 + 21 + … + 2 k-1 = 2 k-1 = k i i 1 (第 层上的最大结点数) =

性质3对任何一棵二叉树1,如果其叶 结点数为m0,度为2的结点数为n2则n=n2 +1 证明:若度为1的结点有n1个,总结点个 数为n,总边数为e,则根据二叉树的定 义 n=n0+n1+n2e=2n2+n1= 因此,有2n2+n1=n+n1+n2-1 n2=nn-110=m2+1
性质3 对任何一棵二叉树T, 如果其叶 结点数为 n0 , 度为2的结点数为 n2 ,则n0=n2 +1. 证明:若度为1的结点有 n1 个,总结点个 数为 n,总边数为 e,则根据二叉树的定 义, n = n0 + n1 + n2 e = 2n2 + n1 = n - 1 因此,有 2n2 + n1 = n0 + n1 + n2 - 1 n2 = n0 - 1 n0 = n2 + 1

两种特殊形态的二叉树 定义1满二叉树( Full Binary Tree 一棵深度为k且有2k1个结点的二叉树称为 满二叉树。 满二叉树
定义1 满二叉树 (Full Binary Tree) 一棵深度为k且有2 k -1个结点的二叉树称为 满二叉树。 两种特殊形态的二叉树 6 2 1 4 5 7 3 8 9 10 11 12 13 14 15 满二叉树

定义2完全二叉树( Complete Binary Tree) 若设二叉树的高度为h,则共有h层。除第 h层外,其它各层(0~h-1)的结点数都达到 最大个数,第h层从右向左连续缺若干结点, 这就是完全二叉树。 完全二叉树→ 69000 非完全二叉树
2 1 4 5 3 6 7 2 1 4 5 6 3 非完全二叉树 定义2 完全二叉树 (Complete Binary Tree) 若设二叉树的高度为h,则共有h层。除第 h 层外,其它各层 (0 h-1) 的结点数都达到 最大个数,第 h 层从右向左连续缺若干结点, 这就是完全二叉树。 6 2 1 4 5 7 3 8 9 10 11 12 完全二叉树
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第九章 查找.ppt
- 天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第二章 线性表.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第四章 类与对象.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第三章 函数.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第二章 C++简单程序设计.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第一章 绪论.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)课程简介(李莉).ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十二章 异常处理.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十一章 流类库与输入/输出.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十章 C++标准模板库.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第九章 群体类和群体数据的组织.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第八章 多态性.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第七章 继承与派生.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第六章 数组、指针与字符串.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第五章 C++程序的结构.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第九章 文件.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第八章 排序.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第七章 查找.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第六章 图.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第五章 树和二叉树.ppt
- 天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第三章 栈和队列.ppt
- 天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第十章 排序.ppt
- 天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第四章 字符串(String).ppt
- 天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第一章 绪论(李晓红).ppt
- 人民邮电出版社:网页及HTML语言.ppt
- 高等教育出版社:《电子商务概论》课程教学资源(PPT电子教案)第一章 电子商务概述(宋文官).ppt
- 高等教育出版社:《电子商务概论》课程教学资源(PPT电子教案)第七章 典型解决方案.ppt
- 高等教育出版社:《电子商务概论》课程教学资源(PPT电子教案)第三章 EDI电子商务.ppt
- 高等教育出版社:《电子商务概论》课程教学资源(PPT电子教案)第二章 电子商务系统的安全.ppt
- 高等教育出版社:《电子商务概论》课程教学资源(PPT电子教案)第五章 电子商务的效益.ppt
- 高等教育出版社:《电子商务概论》课程教学资源(PPT电子教案)第六章 建立电子商务系统.ppt
- 高等教育出版社:《电子商务概论》课程教学资源(PPT电子教案)第四章 Internet与电子商务.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程教学资源(PPT课件)第1章 基础知识(王成耀).ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程教学资源(PPT课件)第2章 80x86计算机系统组织.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程教学资源(PPT课件)第3章 80x86指令系统.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程教学资源(PPT课件)第4章 汇编语言程序格式.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程教学资源(PPT课件)第5章 基本控制结构.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程教学资源(PPT课件)第6章 过程.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程教学资源(PPT课件)第7章 汇编语言的扩展.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程教学资源(PPT课件)第8章 输入/输出与中断.ppt