二叉树练习A

合集下载

二叉树练习题及答案

二叉树练习题及答案

二叉树练习题及答案一、选择题1.关于二叉树的下列说法正确的是(B )A.二叉树的度为2 B.二叉树的度可以小于2C.每一个结点的度都为2 D .至少有一个结点的度为2 2.在树中,若结点A有4个兄弟,而且B是A的双亲,则B的度为(C )A.3 B.4C.5 D .63.若一棵完全二叉树中某结点无左孩子,则该结点一定是(D )A.度为1的结点B.度为2的结点C.分支结点 D .叶子结点4.深度为k的完全二叉树至多有(C )个结点,至少有( B )个结点。

A.2k-1-1 B.2k-1C.2k-1 D .2k5.在具有200个结点的完全二叉树中,设根结点的层次编号为1,则层次编号为60的结点,其左孩子结点的层次编号为(C 2i ),右孩子结点的层次编号为( D 2i+1),双亲结点的层次编号为(60/2=30 A )。

A.30 B.60C.120 D .1216.一棵具有124个叶子结点的完全二叉树,最多有(B )个结点。

A.247 B.248C.249 D .250二、填空题1.树中任意结点允许有零个或多个孩子结点,除根结点外,其余结点有且仅有一个双亲结点。

2.若一棵树的广义表表示法为A(B(E,F),C(G(H,I,J,K),L),D(M (N))),则该树的度为 4 ,树的深度为 4 ,树中叶子结点的个数为8 。

3.若树T中度为1、2、3、4的结点个数分别为4、3、2、2,则T中叶子结点的个数为14 。

n=n0+n1+n2+n3+n4=n0+4+3+2+2=n0+11n=1+孩子=1+4+6+6+8+25n0+11=25n0=144.一棵具有n个结点的二叉树,若它有m个叶子结点,则该二叉树中度为1的结点个数是n-2m+1 。

5.深度为k(k>0)的二叉树至多有2k -1 个结点,第i层上至多有2i-1个结点。

6.已知二叉树有52个叶子结点,度为1的结点个数为30,则总结点个数为133 。

二叉树例题

二叉树例题

二叉树例题摘要:一、二叉树的基本概念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 中序遍历:先遍历左子树,然后访问根节点,最后遍历右子树。

二叉树的习题

二叉树的习题

几个关于二叉树的算法知一个完全二叉树的深度为4第最低层的有5个叶子结点问有多少个叶子结点?1*任何一棵完全二叉树都满足总结点由一个满二叉树+底层结点数2*一棵完全二叉树都满足总结点数n/2=叶子结点n03*由一个工式得(2^n-1-2^n-n1+1)‘n为第几层,n1表示为总结点数’‘如果知道总结点数可以算底层的叶子结点数’如果是算第倒数第二层可以就直接用(2^n-1+1)’就可以直接得到该层的结点数。

设总结点为n低层叶子结点为n4,第三层的叶子结点为n3 由3*可以得到倒数第二层的结点数,再加上书已知的叶子结点就可以得到总结点。

再用2*就能算出所有的叶子结点。

图p125页已知中序和后序求前序后序为a b c d e f g h中序为a c b d h g e f前序根左右中序左根右后序 左右根可得 h 是根结点是h 所以a b c d 是左子树的结点而g e f 是右子树的结点由后序可得d 是左子树的根,a b c 都是左子树上左面的结点根据后充可得a b c 的顺序a 在c 的前面说明工是左子结点,b 在c 的后面是右子结点同时有后充也可以说明这是左子树,右子树可得h 是右子绔的根结点,根据后充g 前面没有结点,e f 是右子树右面的结点,在根据中充可得是e 在f 的前面,用后充也可验证。

*哈夫曼树完全是由n0 和n2构成的没有n1的结点。

*哈夫曼树和完全二叉树不一样在于完全二叉树有度为1的结点。

已知一个高度为7的完全二叉树至少有多少个结点一棵完全二叉树由一棵满二叉树和底层叶子结点构成构cf a b dhg e成已知高度为7可得到第6层以上是一棵满二叉树可得63个结点又说是一棵完全二叉树和至少有可得七层有一个结点所以可得64个结点.。

二叉树算法题

二叉树算法题

二叉树算法题
题目一:二叉树的深度
给定一个二叉树,找出其最大深度。

示例:
输入:
# 定义二叉树节点
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
# 创建二叉树
root = TreeNode(3)
root.left = TreeNode(9)
root.right = TreeNode(20)
root.right.left = TreeNode(15)
root.right.right = TreeNode(7)
输出:
4
解释:二叉树的深度为4,分别是 [3], [9, 20], [15, 7] 和 []。

提示:递归深度优先搜索 (DFS) 是一个有效的解决方案。

对于每个节点,我们可以递归地计算其左子树和右子树的深度,然后返回最大的深度。

为了避免重复计算,我们可以使用一个队列来存储已访问的节点。

在计算深度的过程中,我们需要跟踪当前的深度。

当我们到达一个节点的深度时,我们就可以从队列中删除它,因为我们不需要再次计算它。

为了避免进入无限循环,我们需要在算法中使用一个变量来记录访问过的节点数量,如果超过了树中的节点数量,我们可以提前返回结果。

数据结构二叉树习题含答案

数据结构二叉树习题含答案

第6章树与二叉树1.选择题(1)把一棵树转换为二叉树后,这棵二叉树得形态就是().A。

唯一得B.有多种C.有多种,但根结点都没有左孩子D.有多种,但根结点都没有右孩子(2)由3个结点可以构造出多少种不同得二叉树?()A。

2B.3 C。

4D。

5(3)一棵完全二叉树上有1001个结点,其中叶子结点得个数就是()。

A。

250 B.500 C.254 D.501(4)一个具有1025个结点得二叉树得高h为( ).A。

11 B。

10 C.11至1025之间 D。

10至1024之间(5)深度为h得满m叉树得第k层有( )个结点。

(1=〈k=<h)A。

m k-1 B。

mk-1 C.m h-1 D。

m h—1(6)利用二叉链表存储树,则根结点得右指针就是()。

A.指向最左孩子 B.指向最右孩子 C。

空D.非空(7)对二叉树得结点从1开始进行连续编号,要求每个结点得编号大于其左、右孩子得编号,同一结点得左右孩子中,其左孩子得编号小于其右孩子得编号,可采用( )遍历实现编号。

A。

先序B、中序 C、后序D、从根开始按层次遍历(8)若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树得位置,利用()遍历方法最合适。

A.前序 B.中序 C。

后序 D。

按层次(9)在下列存储形式中,()不就是树得存储形式?A.双亲表示法 B.孩子链表表示法 C.孩子兄弟表示法D.顺序存储表示法(10)一棵非空得二叉树得先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足( )。

A.所有得结点均无左孩子B.所有得结点均无右孩子C.只有一个叶子结点 D.就是任意一棵二叉树(11)某二叉树得前序序列与后序序列正好相反,则该二叉树一定就是( )得二叉树。

A。

空或只有一个结点 B.任一结点无左子树C.高度等于其结点数 D.任一结点无右子树(12)若X就是二叉中序线索树中一个有左孩子得结点,且X不为根,则X得前驱为( )。

A.X得双亲 B。

二叉树练习题及答案

二叉树练习题及答案

一、选择题1.关于二叉树的下列说法正确的是(B )A.二叉树的度为2 B.二叉树的度可以小于2C.每一个结点的度都为2 D .至少有一个结点的度为2 2.在树中,若结点A有4个兄弟,而且B是A的双亲,则B的度为(C )A.3 B.4C.5 D .63.若一棵完全二叉树中某结点无左孩子,则该结点一定是(D )A.度为1的结点B.度为2的结点C.分支结点 D .叶子结点4.深度为k的完全二叉树至多有(C )个结点,至少有( B )个结点。

A.2k-1-1 B.2k-1C.2k-1 D .2k5.在具有200个结点的完全二叉树中,设根结点的层次编号为1,则层次编号为60的结点,其左孩子结点的层次编号为( C 2i ),右孩子结点的层次编号为( D 2i+1),双亲结点的层次编号为(60/2=30 A )。

A.30 B.60C.120 D .1216.一棵具有124个叶子结点的完全二叉树,最多有(B )个结点。

A.247 B.248C.249 D .250二、填空题1.树中任意结点允许有零个或多个孩子结点,除根结点外,其余结点有且仅有一个双亲结点。

2.若一棵树的广义表表示法为A(B(E,F),C(G(H,I,J,K),L),D(M (N))),则该树的度为 4 ,树的深度为 4 ,树中叶子结点的个数为8 。

3.若树T中度为1、2、3、4的结点个数分别为4、3、2、2,则T中叶子结点的个数为14 。

n=n0+n1+n2+n3+n4=n0+4+3+2+2=n0+11n=1+孩子=1+4+6+6+8+25n0+11=25n0=144.一棵具有n个结点的二叉树,若它有m个叶子结点,则该二叉树中度为1的结点个数是n-2m+1 。

5.深度为k(k>0)的二叉树至多有2k -1 个结点,第i层上至多有2i-1个结点。

6.已知二叉树有52个叶子结点,度为1的结点个数为30,则总结点个数为133 。

7.已知二叉树中有30个叶子结点,则二叉树的总结点个数至少是30+29+0=59 。

二叉树练习

二叉树练习

2、求各树的前序序列和后序序列 、
(a)的前序序列:ABCDEF 后序序列:BDEFCA (b)的前序序列:GHIJK 后序序列:IJKHG (c)的前序序列:LMPQRNO 后序序列:QRPMNOL
(1)已知一棵二叉树的前序序列和中序序列分别为ABDGHCEFI和 (1)已知一棵二叉树的前序序列和中序序列分别为ABDGHCEFI和 已知一棵二叉树的前序序列和中序序列分别为ABDGHCEFI GDHBAECIF,请画出此二叉树。 GDHBAECIF,请画出此若二叉树中各结点的值均不相同,则由二叉树的前序序列和中 序序列,或由其后序序列和中序序列均能唯一地确定一棵二叉树, 序序列,或由其后序序列和中序序列均能唯一地确定一棵二叉树, 但由前序序列和后序序列却不一定能唯一地确定一棵二叉树。 但由前序序列和后序序列却不一定能唯一地确定一棵二叉树。
A \ C / / \ D E F / \ / G H I / B
2)已知一棵二叉树的中序序列和后序序列分别为BDCEAFHG和 2)已知一棵二叉树的中序序列和后序序列分别为BDCEAFHG和 已知一棵二叉树的中序序列和后序序列分别为BDCEAFHG DECBHGFA, DECBHGFA,请画出此二叉树
分别写出图下图)所示各二叉树的前序、中序和后序序列。 分别写出图下图 所示各二叉树的前序、中序和后序序列。 所示各二叉树的前序
(a) (b) (c) (d)
前序序列:12345 前序序列:12345
中序序列:24531 中序序列:13542
后序序列:54321 后序序列:54321
前序序列:12357864 中序序列:17583524 后序序列:78563421 前序序列:124735689 中序序列:742153896 后序序列742589631

树-二叉树习题

树-二叉树习题

一、单项选择1.二叉树是非线性数据结构,所以()A、它不能用顺序存储结构存储B、它不能用链式存储结构存储C、顺序存储结构和链式存储结构都能存储D、顺序存储结构和链式存储结构都不能存储参考答案 C2.把一棵树转换为二叉树后,这棵二叉树的形态是()A、唯一的B、有多种C、有多种,但根结点都没有左孩子D、有多种,但根结点都没有右孩子参考答案 A 3.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为()。

A)GEDHFBCA B)DGEBHFCAC)ABCDEFGH D)ACBFEDHG参考答案 B 4.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。

A. O(n)B. O(1)C. O(log2n)D. O(n2)参考答案 C 5.将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对接点编号,根为1,则编号为49的结点的左孩子编号为( ) 。

A.98 B.99 C.50 D.48参考答案 A 6. 高度k的二叉树的最大结点数为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k+1参考答案 A 9.在一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为:()A.15 B.16 C.17 D.47参考答案 B 10.如果T1是由有序数T转换而来的二叉树,那么T中结点的后序遍历序列就是T1结点的()遍序序列A.前序 B.中序 C.后序 D.层次参考答案 B 11.如图所示T2是由森林T1转换而来的二叉树,那么森林T1有()叶结点。

A.4 B.5 C.6 D.7参考答案 C 12.有n个叶子结点的哈弗曼树的结点总数是()A.不确定 B.2n C.2n+1 D.2n-1参考答案 D 二、填空题1.对于一棵具有n个结点的二叉树,一个结点的编号为i(1≤i≤n),若它有左孩子则左孩子结点的编号为________,若它有右孩子,则右孩子结点的编号为________,若它有双亲,则双亲结点的编号为________。

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

1、对于一棵具有n个结点的树,其中所有度之和等于( )
A. n
B. n-1
C. n-2
D.n+1
2、一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶子结点个数是( )
A. 41
B.81
C.113
D.122
3、二叉树和度为2的树相同之处包括( )
A. 每个结点都有一个或两个孩子结点
B. 至少有一个根结点
C. 至少有一个度为2的结点
D. 每个结点至多只有一个双亲结点
4、假设一棵二叉树的结点个数为50,则它的最小高度是( )
A. 4
B. 5
C.6
D. 7
5、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则叶子结点个数为( )
A. 9
B. 11
C.15
D.不确定
6、设高度为h的二叉树只有度为0和度为2的结点,则此类二叉树所包含的结点数至少为( )
A.2h
B.2h-1
C.2h+1
D.h+1
7、一个具有1025个结点的二叉树的高h为( )
A.11
B.10
C.11-025
D.12-1024
8、设二叉树有2n个结点,则m<n,不可能存在____的结点
A.n个度为0
B.2m个度为0
C.2m个度为1
D. 2m个度为2
9、若一个完全二叉树的结点个数为100,则第60个结点的度为____
A. 0
B.1
C.2
D. 不确定
10、将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号为1,则编号最大的分支结点的编号为____
A. 48
B.49
C.50
D. 51
11、一棵完全二叉树上有1001个结点,其中,叶子节点的个数是____
A. 250
B.254
C.501
D. 505
12、高度为h的完全二叉树最少有____个结点
A.2h
B. 2h +1
C. 2h -1
D. 2h -1
13、一棵有124个叶子结点的完全二叉树,最多有____个结点
A.247
B. 248
C. 249
D. 250
14、一棵含有k个叶子结点且没有单分支的完全二叉树,其高度为_____
15、已知一棵完全二叉树的第6层(设根为第一层)有8个叶子结点,则该完全二叉树的结点个数最多是_______
A.39
B. 52
C. 111
D. 119
16、对于完全二叉树中的任一结点,若其右分枝下的子孙最大层次为h,则其左分支下的子孙的最大层次为_______
A.h
B. h+1
C. h或h+1
D. 任意
17、以下说法中,____是正确的。

A 在完全二叉树中,叶子结点的双亲的左兄弟(如果存在)一定不是叶子结点
B 任何一棵二叉树,叶子结点个数为度为2的结点数减1,即n0=n2-1
C 二叉树不适合顺序存储结构
D 节点按完全二叉树层序编号的二叉树中,第i个节点的左孩子的编号为2i
18、一棵满二叉树中共有n个节点,其中有m个叶子节点,高度为h,则____
A.n=h+m
B. h+m=2n
C. m=h-1
D. n=2h-1
19、在一棵二叉树中度为0的节点个数为k,度为1的节点个数为m,则该二叉树采用二叉链存储结构时,有____个指针指向孩子节点
A.k
B.m
C. 2k+m-2
D. 2k+m
20、一棵有n个节点的二叉树采用二叉链存储结点,其中空指针数为_____
A .n B. n+1 C.n-1 D.2n。

相关文档
最新文档