习题8(二叉树的定义和性质)

合集下载

二叉树知识点总结

二叉树知识点总结

二叉树知识点总结1. 二叉树的性质1.1 二叉树的性质一:二叉树的深度二叉树的深度是指从根节点到叶子节点的最长路径长度。

对于一个空树而言,它的深度为0;对于只有一个根节点的树而言,它的深度为1。

根据定义可知,深度为k的二叉树中,叶子节点的深度值为k。

由此可知,二叉树的深度为所有叶子节点深度的最大值。

1.2 二叉树的性质二:二叉树的高度二叉树的高度是指从根节点到叶子节点的最短路径长度。

对于一个空树而言,它的高度为0;对于只有一个根节点的树而言,它的高度为1。

由此可知,二叉树的高度总是比深度大一。

1.3 二叉树的性质三:二叉树的节点数量对于一个深度为k的二叉树而言,它最多包含2^k - 1个节点。

而对于一个拥有n个节点的二叉树而言,它的深度最多为log2(n+1)。

1.4 二叉树的性质四:满二叉树满二叉树是一种特殊类型的二叉树,它的每个节点要么是叶子节点,要么拥有两个子节点。

满二叉树的性质是:对于深度为k的满二叉树而言,它的节点数量一定是2^k - 1。

1.5 二叉树的性质五:完全二叉树完全二叉树是一种特殊类型的二叉树,它的所有叶子节点都集中在树的最低两层,并且最后一层的叶子节点从左到右依次排列。

对于一个深度为k的完全二叉树而言,它的节点数量一定在2^(k-1)和2^k之间。

2. 二叉树的遍历二叉树的遍历是指按照一定的顺序访问二叉树的所有节点。

二叉树的遍历主要包括前序遍历、中序遍历和后序遍历三种。

2.1 前序遍历(Pre-order traversal)前序遍历的顺序是:根节点 -> 左子树 -> 右子树。

对于一个二叉树而言,前序遍历的结果就是按照“根-左-右”的顺序访问所有节点。

2.2 中序遍历(In-order traversal)中序遍历的顺序是:左子树 -> 根节点 -> 右子树。

对于一个二叉树而言,中序遍历的结果就是按照“左-根-右”的顺序访问所有节点。

2.3 后序遍历(Post-order traversal)后序遍历的顺序是:左子树 -> 右子树 -> 根节点。

二叉树的性质及其遍历

二叉树的性质及其遍历
12.2 二叉树的遍历 12.3 二叉树的存储结构
12.3.1 顺序存储结构 12.3.2 链式存储
•二叉树的性质及其遍历
12.1 二叉树的基本性质
定理 1:满二叉树第i层上恰好有2i-1个结点 (i≥1).
证:使用归纳法。i=1时,结论显然成立。设i=k时结 论成立,则考虑i=k+1的情形。由于(k+1)层上结点 是k层上结点的儿子,而且满二叉树每个非叶子结 点恰好有两个儿子,故(k+1)层上结点个数为k层上 结点个数的2倍,即2·2k-1 = 2k = 2(k+1)-1. 这表明, i=k+1时结论也成立。由归纳法原理,结论对任意 的k都成立,证毕。
x的相对地址x的编号x的父亲/儿子的编 号(性质7) x的父亲/儿子的相对地址。
•二叉树的性质及其遍历
至于结点的相对地址与编号之间的换算,有下列关系: 结点相对地址 = (结点编号 – 1)×每个结点所
占单元数目
a
b
f
cegh d
1 2 34 56 7 8 a b f ce g h d …
图 12-2 顺序二叉树的顺序存储
•二叉树的性质及其遍历
12.1.7 定理7 若对一棵有n个结点的顺序二叉树的结点按层序 编号,则对任一结点i(1≤i≤n),有(1)若i=1, 则结点i是根, 无父亲;若i〉1,则其父亲是结点i/2。(2)若2i>n,则结点i 无左儿子(从而也无右儿子,为叶子);否则i的左儿子是结 点2i。(3)若2i+1>n,则结点i无右儿子;否则右儿子是结点 2i+1。
12.3.1顺序存储结构
(一) 顺序二叉树的顺序存储结构
这种存储结构是按结点的层序编号的次序,将 结点存储在一片连续存储区域内。由定理 7知, 对顺序二叉树,若已知结点的层序编号,则可推 算出它的父亲和儿子的编号,所以,在这种存储 结构中,很容易根据结点的相对地址计算出它的 父亲和儿子的相对地址,方法是:

二叉树例题

二叉树例题

二叉树例题摘要:一、二叉树的基本概念1.二叉树的定义2.二叉树的特点3.二叉树的重要性质二、二叉树的重要操作1.插入节点2.删除节点3.遍历二叉树3.1 前序遍历3.2 中序遍历3.3 后序遍历三、二叉树的应用场景1.数据结构2.算法设计3.文件系统正文:一、二叉树的基本概念1.二叉树定义:二叉树是一种特殊的树形数据结构,其中每个节点最多有两个子节点,通常分别称为左子节点和右子节点。

由于每个节点最多有两个子节点,因此二叉树具有很好的分支特性,可以实现高效的数据查找、插入和删除操作。

2.二叉树特点:二叉树具有以下特点:a.每个节点最多有两个子节点,分别称为左子节点和右子节点。

b.所有节点的左子节点和右子节点分别有序排列。

c.所有叶子节点(即没有子节点的节点)都位于同一层。

3.二叉树的重要性质:二叉树具有以下两个重要性质:a.完全二叉树:若设二叉树的深度为h,除第h层外,其它各层的节点数都达到最大值,且第h层所有节点都连续集中在最左边,则称该二叉树为完全二叉树。

b.满二叉树:若设二叉树的深度为h,且除第h层外,其它各层的节点数都达到最大值,则称该二叉树为满二叉树。

满二叉树的每个节点都有两个子节点。

二、二叉树的重要操作1.插入节点:在二叉树中插入一个新节点,可以分为以下几种情况:a.插入叶子节点:直接将新节点作为叶子节点插入到指定位置。

b.插入非叶子节点:将新节点插入到合适的位置,使树的结构保持平衡。

2.删除节点:在二叉树中删除一个节点,可以分为以下几种情况:a.删除叶子节点:直接删除叶子节点。

b.删除非叶子节点:找到待删除节点的替代节点,将其替代节点与待删除节点断开连接,然后删除替代节点。

3.遍历二叉树:遍历二叉树是访问二叉树中所有节点的过程,通常有前序遍历、中序遍历和后序遍历三种方式。

3.1 前序遍历:先访问根节点,然后遍历左子树,最后遍历右子树。

3.2 中序遍历:先遍历左子树,然后访问根节点,最后遍历右子树。

数据结构二叉树先序中序后序考研题目

数据结构二叉树先序中序后序考研题目

数据结构二叉树先序中序后序考研题目
摘要:
一、二叉树的基本概念和性质
二、二叉树的遍历方式
三、考研题目中关于二叉树的问题
正文:
一、二叉树的基本概念和性质
二叉树是一种非常重要的数据结构,在计算机科学中有着广泛的应用。

它由一个根节点和两个子节点组成,每个节点也可以有零个或多个子节点。

二叉树具有以下几个重要的性质:
1.每个节点最多只有两个子节点,即左子节点和右子节点。

2.所有节点的左子节点都比它小,所有节点的右子节点都比它大。

3.每个节点的左子树和右子树也是二叉树。

二、二叉树的遍历方式
二叉树的遍历方式有三种:先序遍历、中序遍历和后序遍历。

先序遍历:根节点- > 左子树- > 右子树
中序遍历:左子树- > 根节点- > 右子树
后序遍历:左子树- > 右子树- > 根节点
三、考研题目中关于二叉树的问题
在考研题目中,关于二叉树的问题通常涉及以下几个方面:
1.二叉树的遍历:要求根据二叉树的结构,写出其先序遍历、中序遍历或
后序遍历。

2.二叉树的应用:要求利用二叉树解决具体问题,例如求二叉树的高度、求两个二叉树的最近公共祖先等。

3.二叉树的结构:要求根据二叉树的遍历结果,画出其结构图或者判断其是否存在。

以上就是关于数据结构中二叉树的基本概念、遍历方式和在考研题目中的应用的介绍。

数据结构之二叉树(BinaryTree)

数据结构之二叉树(BinaryTree)

数据结构之⼆叉树(BinaryTree)⽬录导读 ⼆叉树是⼀种很常见的数据结构,但要注意的是,⼆叉树并不是树的特殊情况,⼆叉树与树是两种不⼀样的数据结构。

⽬录 ⼀、⼆叉树的定义 ⼆、⼆叉树为何不是特殊的树 三、⼆叉树的五种基本形态 四、⼆叉树相关术语 五、⼆叉树的主要性质(6个) 六、⼆叉树的存储结构(2种) 七、⼆叉树的遍历算法(4种) ⼋、⼆叉树的基本应⽤:⼆叉排序树、平衡⼆叉树、赫夫曼树及赫夫曼编码⼀、⼆叉树的定义 如果你知道树的定义(有限个结点组成的具有层次关系的集合),那么就很好理解⼆叉树了。

定义:⼆叉树是n(n≥0)个结点的有限集,⼆叉树是每个结点最多有两个⼦树的树结构,它由⼀个根结点及左⼦树和右⼦树组成。

(这⾥的左⼦树和右⼦树也是⼆叉树)。

值得注意的是,⼆叉树和“度⾄多为2的有序树”⼏乎⼀样,但,⼆叉树不是树的特殊情形。

具体分析如下⼆、⼆叉树为何不是特殊的树 1、⼆叉树与⽆序树不同 ⼆叉树的⼦树有左右之分,不能颠倒。

⽆序树的⼦树⽆左右之分。

2、⼆叉树与有序树也不同(关键) 当有序树有两个⼦树时,确实可以看做⼀颗⼆叉树,但当只有⼀个⼦树时,就没有了左右之分,如图所⽰:三、⼆叉树的五种基本状态四、⼆叉树相关术语是满⼆叉树;⽽国际定义为,不存在度为1的结点,即结点的度要么为2要么为0,这样的⼆叉树就称为满⼆叉树。

这两种概念完全不同,既然在国内,我们就默认第⼀种定义就好)。

完全⼆叉树:如果将⼀颗深度为K的⼆叉树按从上到下、从左到右的顺序进⾏编号,如果各结点的编号与深度为K的满⼆叉树相同位置的编号完全对应,那么这就是⼀颗完全⼆叉树。

如图所⽰:五、⼆叉树的主要性质 ⼆叉树的性质是基于它的结构⽽得来的,这些性质不必死记,使⽤到再查询或者⾃⼰根据⼆叉树结构进⾏推理即可。

性质1:⾮空⼆叉树的叶⼦结点数等于双分⽀结点数加1。

证明:设⼆叉树的叶⼦结点数为X,单分⽀结点数为Y,双分⽀结点数为Z。

数据结构—— 树和二叉树知识点归纳

数据结构——  树和二叉树知识点归纳

第6章树和二叉树6.1 知识点概述树(Tree)形结构是一种很重要的非线性结构,它反映了数据元素之间的层次关系和分支关系。

在计算机科学中具有广泛的应用。

1、树的定义树(Tree)是n(n≥0)个数据元素的有限集合。

当n=0时,称这棵树为空树。

在一棵非空树T中:(1)有一个特殊的数据元素称为树的根结点,根结点没有前驱结点。

(2)若n>1,除根结点之外的其余数据元素被分成m(m>0)个互不相交的集合T1,T2,…,Tm,其中每一个集合Ti(1≤i≤m)本身又是一棵树。

树T1,T2,…,Tm称为这个根结点的子树。

2、树的基本存储结构(1)双亲表示法由于树中的每一个结点都有一个唯一确定的双亲结点,所以我们可用一组连续的存储空间(即一维数组)存储树中的结点。

每个结点有两个域:一个是data域,存放结点信息,另一个是parent域,用来存放双亲的位置(指针)。

(2)孩子表示法将一个结点所有孩子链接成一个单链表形,而树中有若干个结点,故有若干个单链表,每个单链表有一个表头结点,所有表头结点用一个数组来描述这种方法通常是把每个结点的孩子结点排列起来,构成一个单链表,称为孩子链表。

(3)双亲孩子表示法双亲表示法是将双亲表示法和孩子表示法相结合的结果。

其仍将各结点的孩子结点分别组成单链表,同时用一维数组顺序存储树中的各结点,数组元素除了包括结点本身的信息和该结点的孩子结点链表的头指针之外,还增设一个域,存储该结点双亲结点在数组中的序号。

(4)孩子兄弟表示法这种表示法又称为树的二叉表示法,或者二叉链表表示法,即以二叉链表作为树的存储结构。

链表中每个结点设有两个链域,分别指向该结点的第一个孩子结点和下一个兄弟(右兄弟)结点。

3、二叉树的定义二叉树(Binary Tree)是个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。

当集合为空时,称该二叉树为空二叉树。

数据结构(十九)二叉树的定义和性质

数据结构(十九)二叉树的定义和性质

数据结构(⼗九)⼆叉树的定义和性质 ⼀、⼆叉树的定义 1.⼆叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(称为空⼆叉树),或者由⼀个根结点和两颗互不相交的、分别称为根结点的左⼦树和右⼦树的⼆叉树组成。

2.⼆叉树的特点:每个结点最多有两颗⼦树,所以⼆叉树中不存在度⼤于2的结点。

左⼦树和右⼦树是有顺序的,次序不能任意颠倒。

即使树中某结点只有⼀颗⼦树,也要区分它是左⼦树还是右⼦树。

3.⼆叉树具有五种基本形态:空⼆叉树只有⼀个根结点根结点只有左⼦树根结点只有右⼦树根结点既有左⼦树⼜有右⼦树 4.特殊⼆叉树 (1)斜树:所有的结点都只有左⼦树的⼆叉树叫左斜树,所有结点都是只有右⼦树的⼆叉树叫右斜树。

(2)满⼆叉树:所有分⽀结点都存在左⼦树和右⼦树,并且所有叶⼦都在同⼀层上。

(3)对⼀颗具有n个结点的⼆叉树按层序编号,如果编号为i(1<=i<=n)的结点与同样深度的满⼆叉树中编号为i的结点在⼆叉树中的位置完全相同,则这棵⼆叉树称为完全⼆叉树。

⼆、⼆叉树的性质(注意,这⾥的i都是从0开始的) 1.在⼆叉树的第i层上⾄多有2^i个结点(i从0开始)。

2.深度为k的⼆叉树⾄多有2^k -1个结点(k从1开始)。

3.对任何⼀颗⼆叉树T,如果其终端节点树为n0,度为2的结点数为n2,则n0 = n2 +1(设度为1的结点数为n1,则结点总数为n=n0+n1+n2;⼜由于除了根结点外,每⼀个结点均对应⼀个进⼊它的分⽀,所以分⽀总数=n-1,⼜由于度为1的结点对应着1个从它引出的分⽀,度为2的结点对应着2个从它引出的分⽀,所以分⽀总数=n1+2*n2,即n-1=n1+2*n2)。

4.具有n个结点的完全⼆叉树的深度为【log2 n】+1(【x】表⽰不⼤于x的最⼤整数)(深度为k的满⼆叉树的结点数n⼀定是2^k -1) 5.如果对⼀颗有n个结点的完全⼆叉树(其深度为【log2 n】+1)的结点按层序编号(从第1层到第【log2 n】+1层,每层从左到右),对任⼀结点i(0<=i<=n-1)有:如果i=0,则结点i是⼆叉树的根,⽆双亲;如果i>1,则其双亲是结点【(i-1)/2】如果2i+1>n,则结点i⽆左孩⼦;否则其左孩⼦是结点2i+1如果2i+2>n,则结点i⽆右孩⼦;否则其右孩⼦是结点2i+2。

二叉树的定义

二叉树的定义

⼆叉树的定义
⼆叉树结构最简单,规律性最强;
可以证明,所有的书都能转为未对应的⼆叉树,不是⼀般性。

普通树(多叉树)若不转化为⼆叉树,则运算很难实现
⼆叉树在树结构的应⽤中起着⾮常重要的作⽤,因为对⼆叉树的许多操作算法简单,
⽽任何树都可以与⼆叉树相互转换,这样就解决了树的存储结构及其运算中存在的复杂性。

⼆叉树的定义:⼆叉树是 n(n≥0)个结点的有限集,它或者是空集(n = 0),
或者由⼀个根节点及两棵互不相交的分别称作这个根的左⼦树和右⼦树的⼆叉树组成。

特点:
①每个结点最多有俩孩⼦(⼆叉树中不存在度⼤于2的结点)
②⼦树有左右之分,其次序不能颠倒(如果次序颠倒,则是另⼀棵树)
③⼆叉树可以是空集合,根可以有空的左⼦树或空的右⼦树
注意:⼆叉树不是树的特殊情况,它们是两个概念。

⼆叉树结点的⼦树要区分左⼦树和右⼦树,即使只有⼀颗⼦树也要进⾏区分,说明它是左⼦树还是右⼦树。

树当结点只有⼀个孩⼦时,就⽆须区分它是做还是右的次序。

因此⼆者是不同的,这是⼆叉树与树的最主要的差别。

也就是⼆叉树每个结点位置或者说次序都是固定的,可以是空,但是不可以说它没有位置,⽽树的结点位置是相对于别的结点来说的,没有别的结点时,它就⽆所谓左右了。

⼆叉树的五种基本形态:
注:虽然⼆叉树与树的概念不同,但有关树的基本术语对⼆叉树都适⽤。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题8(二叉树的定义和性质)
一、选择题
1、除个别结点外,其余结点只能有1个前驱结点,可有任意多个后继结点,这样的结构为( B )。

A)线性结构 B)树形结构 C)图形结构 D)拓扑结构
2、在下述结论中,正确的是( D )。

①只有一个结点的二叉树的度为0 ②二叉树的度为2 ③二叉树的左右子树可任意交换
④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树
A)①②③ B)②③④ C)②④ D)①④
3、下列有关树的概念错误的是( B )。

A)一颗树中只有一个无前驱的结点 B)一颗树的度为树中各个结点的度数之和
C)一颗树中,每个结点的度数之和等于结点的总数减1 D)一颗树中每个结点的度数之和与边的条数相等4、对任一颗树,设它有n个结点,这n个结点的度数之和为d,下列关系式正确的是( D )。

A)d=n B)d=n-2 C)d=n+1 D)d=n-1
5、下列说法中正确的是( D )。

A)二叉树中任何一个结点的度都为2 B)二叉树的度为2
C)任何一棵二叉树中至少有一个结点的度为2 D)一棵二叉树的度可以小于2
6、以二叉链表作为二叉树的存储结构,在具有n个结点的二叉链表中(n>0),空链域的个数为( C )。

A)2n-1 B)n-1 C)n+1 D)2n+1
7、树最适合用来表示( C )。

A)有序数据元素 B)无序数据元素 C)元素之间具有分支层次关系的数据 D)元素之间无联系的数据8、由4个结点可以构造出多少种不同的二叉树( C )。

A)4 B)5 C)14 D)15
9、一个二叉树具有( A )种基本形态。

A)5 B)4 C)3 D)2
10、二叉树的第I层上最多含有结点数为( C )。

A)2I B)2I-1-1 C)2I-1 D)2I -1
11、深度为5的二叉树至多有( C )个结点.
A)16 B)32 C)31 D)10
12、一个满二叉树,共有n个结点,其中m个为树叶,则( B )。

A)n= m+1 B)m=( n +1)/2 C)n =2 m D)n =2 m
13、深度为h的满m叉树的第k层有( A )个结点。

(1=<k=<h)
A)m k-1 B)m k-1 C)m h-1 D)m h-1
14、在一棵高度为k的满二叉树中,结点总数为( C )。

A)2k-1 B)2k C)2k-1 D)⎣log2k⎦+1
15、假定一棵二叉树的结点数为18,则它的最小高度为( C )。

A)18 B)8 C)5 D)4
16、一个具有1025个结点的二叉树的高h为( C )。

A)11 B)10 C)11至1025之间 D)10至1024之间
17、树T的度为4,其中度为1,2,3和4的结点数分别为4,1,10,20,则T中的叶子数为( B )。

A)41 B)82 C)113 D)122
18、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( B )。

A)9 B)11 C)15 D)不确定
19、二叉树中,度为1的结点数为9,则该二叉树的叶子结点的数目为( D )。

A)10 B)11 C)12 D)不确定
20、设高度为h的二叉树上只有度为0和度为2的结点,则此二叉树中所含的结点数至少为( C )。

A)2h B)2h+1 C)2h-1 D)h+1
21、若完全二叉树的结点总数为偶数,则度为1的结点有( B )个。

A)0 B)1 C)2 D)不确定
22、一棵完全二叉树上有1001个结点,其中叶子结点的个数是( D )。

A)250 B)500 C)254 D)501
23、具有65个结点的完全二叉树其深度为( B )。

A)8 B)7 C)6 D)5
24、对于有n 个结点的二叉树, 其高度为( D )。

A)nlog2n B)log2n C)⎣log2n⎦|+1 D)不确定
25、一棵具有 n个结点的完全二叉树的树高度(深度)是( A )。

A)⎣logn⎦+1 B)logn+1 C)⎣logn⎦ D)logn-1
26、将有关二叉树的概念推广到三叉树,则一棵有244个结点的完全三叉树的高度( C )。

A)4 B)5 C)6 D)7
27、已知一棵完全二叉树的第6层有8个叶结点,则完全二叉树的结点个数最多是( C )。

A)39 B)52 C)111 D)119
28、完全二叉树中,其根的序号为1,下列可判定序号为p和q的两个结点是否在同一层的正确选项是( A )。

A)⎣log2p⎦=⎣log2q⎦ B)log2p=log2q C)⎣log2p⎦+1=⎣log2q⎦ D)⎣log2p⎦=⎣log2q⎦+1
29、含有101个结点的完全二叉树存储在数组A[1..101]中,对1≤k≤101,若A[k]为叶子结点,则k的最小值是( A )。

A)51 B)50 C)49 D)48
30、将含有100个结点的完全二叉树按照从上到下从左到右依次对结点编号,根结点的编号为1,编号为71的结点的双亲的编号为( B )。

A)34 B)35 C)36 D)无法确定
31、在一棵顺序二叉树中,若一结点的编号为i,则其右孩子的编号为( C )。

A)i/2取整 B)2i C)2i+1 D)2i-1
二、填空题
1、树是n(n>0)个结点的有限集,有且仅有一个特定的称为(根)的结点,当n>1时,区域结点可分为m(m>0)
个(互不相交)的有限集,每一个集合称为根的(子树)。

2、树的结点包含一个(数据结构)及若干指向其(子树)的分支。

结点拥有的子树数称为(度),度为0
的结点称为(叶子),度不为0的结点称为(分支节点)。

3、二叉树的每个结点至多只有( 2 )颗子树,且子树有(左右)之分。

4、设二叉树根结点的层次为0,对含有100个结点的二叉树,可能的最大高度和最低高度分别是( 99 6 )。

5、设一棵完全二叉树具有1000个结点,则此完全二叉树有( 500 )个叶子结点,有( 499 )个度为2
的结点,有( 1 )个结点只有非空左子树,有( 0 )个结点只有非空右子树。

6、一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( 2h-1 )结点。

7、设二叉树根结点的层次为0,在一颗高度为10的满二叉树中非叶子结点的个数是( 2^10-1 )。

8、用数组A[1..n]顺序存储完全二叉树的各结点,则当i≤(n-1)/2时,结点A[i]的右子女是结点( A[2i+1] )。

9、深度为h的满二叉树的结点总数为(2^h-1);深度为h的完全二叉树的结点数最小为( 2^(h-1)),最大为(2^h-1)。

10、在完全二叉树中,编号为i和j的两个结点处于同一层的条件是( [log i j]=[log i j] )。

三、简答题
1、证明:对于任意满二叉树,其分枝数B=2(n0-1),其中n0为叶子结点数。

【解答】因为在满二叉树中没有度为1的结点,所以有: n=n0+n2
设B为树中分枝数,则 n=B+1 所以
B=n0 +n2-1
再由二叉树性质: n0=n2+1 代入上式有:
B=n0+n0-1-1=2(n0-1)
2、已知A[1..N]是一棵顺序存储的完全二叉树,如何求出A[i]和A[j]的最近的共同祖先?
解:根据顺序存储的完全二叉树的性质,编号为i的结点的双亲的编号为 i/2 ,故A[i]和A[j]的最近的共同祖先可如下求出:
while(i/2!j/2)
if(i>j)i=i/2;
else j=j/2;
退出while后,若i/2=0,则最近共同祖先为根结点,否则共同祖先为i/2。

3、一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,…,nm个度为m的结点,问该树中有多少片叶子?
【解答】设该树的总结点数为n,则 n=n0+n1+n2+……+nm
又:
n=分枝数+1=0×n0+1×n1+2×n2+……+m×nm+1 由上述两式可得:
n0= n2+2n3+……+(m-1)nm+1
5、试求有n个叶结点的非满的完全二叉树的高度
【参考答案】
设完全二叉树中叶子结点数为n,则根据完全二叉树的性质,度为2的结点数是n-1,而完全二叉树中,度为1的结点数至多为1,所以具有n个叶子结点的完全二叉树结点数是n+(n-1)+1=2n或2n-1(有或无度为1的结点)。

由于具有2n(或2n-1)个结点的完全二叉树的深度是log2(2n)+1( log2(2n-1)+1,即élog2nù+1,故n个叶结点的非满的完全二叉树的高度是élog2nù+1。

(最下层结点数>=2)。

相关文档
最新文档