数据结构之树的问题
数据结构:树和二叉树
C 唯一性不确定。
D 唯一性与原因的边的权数有关。
14、将递归算法转换成对应的非递归算法时,通常需要使用__________。 A栈 B 队列 C 链表 D树 15 、设二维数组 A[m][n], 每个数组元素占用 K 个存储单元 , 第一个数组元素的存储地址是 Loc(a[0][0]),求按行优先顺序存放的数组元素 a[i][j](0<=i<=m-1,0<=j<=n-1)的存储地址为______。 A,Loc(a[0][0]+[(i-1)*n+j-1]*k B,Loc(a[0][0])+[i*n+j]*k C,Loc(a[0][0])+[j*m+i]*k D,Loc(a[0][0])+[(j-1)*m+i-1]*k 16 、设二维数组 A[m][n], 每个数组元素占用 k 个存储单元 , 第一个数组元素的存储地址是 Loc(a[0][0]),求按列优先顺序存放的数组元素 a[i][j](0<=i<=m-1,0<=j<=n-1)的存储地址为______。 A,Loc(a[0][0])+[(i-1)*n+j-1]*k B,Loc(a[0][0])+[i*n+j]*k C,Loc(a[0][0])+[j*m+i]*k D,Loc(a[0][0])+[(j-1)*m+i-1]*k 17 、设二维数组 A[6][10], 每个数组元素占用 4 个存储单元 , 若按行优先顺序存放的数组元 素,a[0][0]的存储地址为 860,则 a[3][5]的存储地址是______。 A,1000 B,860 C,1140 D,1200 18、设二维数组 A[6][10],每个数组元素占用 4 个存储单元,若按行优先顺序存放的数组元素 a[3][5]的存储地址为 1000,则 a[0][0]的存储地址是______。 A,872 B,860 C,868 D,864 19、若将 n 阶上三角矩阵 A 按列优先顺序压缩存放在一维数组 B[1..n(n+1)/2]中,第一个非零 元素 a1,1 存于 B[0]中,则应存放到 B[k]中的非零元素 ai,j(1<=i<=n,1<=j<=i)的下标 i、j 与 k 的对 应关系是______。 A,i(i+1)/2+j B,i(i-1)/2+j-1 C,j(j+1)/2+i D,j(j-1)/2+i-1 20、若将 n 阶下三角矩阵 A 按列优先顺序压缩存放在一维数组 B[1..n(n+1)/2]中,第一个非零 元素 a1,1 存于 B[0]中,则应存放到 B[k]中的非零元素 ai,j(1<=i<=n,1<=j<=i)的下标 i、j 与 k 的对 应关系是______。 A,j(2n-j+1)/2+i-j B,(j-1)(2n-j+1)/2+i-j C,i(2n-i+1)/2+j-i D,i(2n-i+2)/2 A 便于进行矩阵运算 B 便于输入和输出 C 节省存储空间 度 22、稀疏矩阵压缩后,必会失去______功能。 A 顺序存储 B 随机存取 C 输入输出 D 以上都不对
数据结构练习第六章树
数据结构练习第六章树一、选择题1.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据2.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-13.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。
A. 2m-1B. 2mC. 2m+1D. 4m4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。
A. BADCB. BCDAC. CDABD. CBDA5.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。
A. 9B. 10C. 11D. 126.设一棵二叉树的深度为k,则该二叉树中最多有()个结点。
A. 2k-1 B .2k C. 2k-1 D. 2k-17.设某二叉树中度数为0的结点数为N0,度数为1的结点数为Nl,度数为2的结点数为N2,则下列等式成立的是()。
A. N0=N1+1 B. N=Nl+N2C. N=N2+1 D. N=2N1+l8.设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为Nl,……,度数为m的结点数为Nm,则N=()。
A. Nl +N2+……+Nm B. l+N2+2N3+3N4+……+(m-1)NmC. N2+2N3+3N4+……+(m-1)Nm D. 2Nl+3N2+……+(m+1)Nm9.设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为()。
A. 20B. 30C. 40D. 4510.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是()。
A. 空或只有一个结点B. 高度等于其结点数C. 任一结点无左孩子D. 任一结点无右孩子11.设某棵三叉树中有40个结点,则该三叉树的最小高度为()。
A. 3B. 4C. 5D. 612.深度为k的完全二叉树中最少有()个结点。
数据结构树和二叉树习题及答案
习题六树和二叉树一、单项选择题1.以下说法错误的是()A.树形结构的特点是一个结点可以有多个直接前趋B.线性结构中的一个结点至多只有一个直接后继C.树形结构可以表达(组织)更复杂的数据D.树(及一切树形结构)是一种”分支层次”结构E.任何只含一个结点的集合是一棵树2.下列说法中正确的是()A.任何一棵二叉树中至少有一个结点的度为 2B.任何一棵二叉树中每个结点的度都为 2C.任何一棵二叉树中的度肯定等于 2D.任何一棵二叉树中的度可以小于 23.讨论树、森林和二叉树的关系,目的是为了()A.借助二叉树上的运算方法去实现对树的一些运算B.将树、森林按二叉树的存储方式进行存储C.将树、森林转换成二叉树D.体现一种技巧,没有什么实际意义4.树最适合用来表示()A.有序数据元素 B .无序数据元素C.元素之间具有分支层次关系的数据 D .元素之间无联系的数据5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A.9 B.11 C .15 D .不确定6.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1, M2和M3与森林F对应的二叉树根结点的右子树上的结点个数是()。
A.M1 B .M1+M2 C .M3 D .M2+M37.一棵完全二叉树上有1001个结点,其中叶子结点的个数是()A.250 B .500 C .254 D .505 E .以上答案都不对8.设给定权值总数有n 个,其哈夫曼树的结点总数为()A.不确定 B . 2n C . 2n+1 D . 2n-19.二叉树的第I层上最多含有结点数为()I I-1 I-1 IA.2I B .2I-1-1 C .2I-1D .2I-110.一棵二叉树高度为h, 所有结点的度或为0,或为2,则这棵二叉树最少有()结点A.2h B .2h-1 C .2h+1 D .h+111.利用二叉链表存储树,则根结点的右指针是()。
数据结构答案第5章
第 5 章树和二叉树1970-01-01第 5 章树和二叉树课后习题讲解1. 填空题⑴树是n(n≥0)结点的有限集合,在一棵非空树中,有()个根结点,其余的结点分成m(m>0)个()的集合,每个集合都是根结点的子树。
【解答】有且仅有一个,互不相交⑵树中某结点的子树的个数称为该结点的(),子树的根结点称为该结点的(),该结点称为其子树根结点的()。
【解答】度,孩子,双亲⑶一棵二叉树的第i(i≥1)层最多有()个结点;一棵有n(n>0)个结点的满二叉树共有()个叶子结点和()个非终端结点。
【解答】2i-1,(n+1)/2,(n-1)/2【分析】设满二叉树中叶子结点的个数为n0,度为2的结点个数为n2,由于满二叉树中不存在度为1的结点,所以n=n0+n2;由二叉树的性质n0=n2+1,得n0=(n+1)/2,n2=(n-1)/2。
⑷设高度为h的二叉树上只有度为0和度为2的结点,该二叉树的结点数可能达到的最大值是(),最小值是()。
【解答】2h -1,2h-1【分析】最小结点个数的情况是第1层有1个结点,其他层上都只有2个结点。
⑸深度为k的二叉树中,所含叶子的个数最多为()。
【解答】2k-1【分析】在满二叉树中叶子结点的个数达到最多。
⑹具有100个结点的完全二叉树的叶子结点数为()。
【解答】50【分析】100个结点的完全二叉树中最后一个结点的编号为100,其双亲即最后一个分支结点的编号为50,也就是说,从编号51开始均为叶子。
⑺已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点。
则该树中有()个叶子结点。
【解答】12【分析】根据二叉树性质3的证明过程,有n0=n2+2n3+1(n0、n2、n3分别为叶子结点、度为2的结点和度为3的结点的个数)。
⑻某二叉树的前序遍历序列是ABCDEFG,中序遍历序列是CBDAFGE,则其后序遍历序列是()。
【解答】CDBGFEA【分析】根据前序遍历序列和后序遍历序列将该二叉树构造出来。
第6章_数据结构习题题目及答案_树和二叉树_参考答案
一、基础知识题6.1设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1,求树T中的叶子数。
【解答】设度为m的树中度为0,1,2,…,m的结点数分别为n0, n1, n2,…, nm,结点总数为n,分枝数为B,则下面二式成立n= n0+n1+n2+…+nm (1)n=B+1= n1+2n2 +…+mnm+1 (2)由(1)和(2)得叶子结点数n0=1+即: n0=1+(1-1)*4+(2-1)*2+(3-1)*1+(4-1)*1=86.2一棵完全二叉树上有1001个结点,求叶子结点的个数。
【解答】因为在任意二叉树中度为2 的结点数n2和叶子结点数n0有如下关系:n2=n0-1,所以设二叉树的结点数为n, 度为1的结点数为n1,则n= n0+ n1+ n2n=2n0+n1-11002=2n0+n1由于在完全二叉树中,度为1的结点数n1至多为1,叶子数n0是整数。
本题中度为1的结点数n1只能是0,故叶子结点的个数n0为501.注:解本题时要使用以上公式,不要先判断完全二叉树高10,前9层是满二叉树,第10层都是叶子,……。
虽然解法也对,但步骤多且复杂,极易出错。
6.3 一棵124个叶结点的完全二叉树,最多有多少个结点。
【解答】由公式n=2n0+n1-1,当n1为1时,结点数达到最多248个。
6.4.一棵完全二叉树有500个结点,请问该完全二叉树有多少个叶子结点?有多少个度为1的结点?有多少个度为2的结点?如果完全二叉树有501个结点,结果如何?请写出推导过程。
【解答】由公式n=2n0+n1-1,带入具体数得,500=2n0+n1-1,叶子数是整数,度为1的结点数只能为1,故叶子数为250,度为2的结点数是249。
若完全二叉树有501个结点,则叶子数251,度为2的结点数是250,度为1的结点数为0。
6.5 某二叉树有20个叶子结点,有30个结点仅有一个孩子,则该二叉树的总结点数是多少。
数据结构练习题--树(题)
第六章树一.名词解释:1 树 2。
结点的度 3。
叶子 4。
分支点 5。
树的度6.父结点、子结点 7兄弟 8结点的层数 9树的高度 10 二叉树11 空二叉树 12 左孩子、右孩子 13孩子数 14 满二叉树 15完全二叉树16 先根遍历 17 中根遍历 18后根遍历 19二叉树的遍历 20 判定树21 哈夫曼树二、填空题1、树(及一切树形结构)是一种“________”结构。
在树上,________结点没有直接前趋。
对树上任一结点X来说,X是它的任一子树的根结点惟一的________。
2、一棵树上的任何结点(不包括根本身)称为根的________。
若B是A的子孙,则称A是B的________3、一般的,二叉树有______二叉树、______的二叉树、只有______的二叉树、只有______ 的二叉树、同时有______的二叉树五种基本形态。
4、二叉树第i(i>=1)层上至多有______个结点。
5、深度为k(k>=1)的二叉树至多有______个结点。
6、对任何二叉树,若度为2的节点数为n2,则叶子数n0=______。
7、满二叉树上各层的节点数已达到了二叉树可以容纳的______。
满二叉树也是______二叉树,但反之不然。
8、具有n个结点的完全二叉树的深度为______。
9、如果将一棵有n个结点的完全二叉树按层编号,则对任一编号为i(1<=i<=n)的结点X有:(1)若i=1,则结点X是______;若i〉1,则X的双亲PARENT(X)的编号为______。
(2)若2i>n,则结点X无______且无______;否则,X的左孩子LCHILD(X)的编号为______。
(3)若2i+1>n,则结点X无______;否则,X的右孩子RCHILD(X)的编号为______。
10.二叉树通常有______存储结构和______存储结构两类存储结构。
11.每个二叉链表的访问只能从______结点的指针,该指针具有标识二叉链表的作用。
计算机存储和组织数据方式之《数据结构》关于“树”的习题(PPT内含答案)
• 12.已知二叉树的先序遍历和后序遍历不能唯一确定这棵 二叉树,这是因为不知道根结点是哪一个。
•
(T )
• 7.树结构中的每个结点最多只有一个直接前驱。 (T )
• 8.完全二叉树一定是满二叉树。 (F)
• 9.由树转换成二叉树,其根结点的右子树一定为空。 (T )
• 10.在先序遍历二叉树的序列中,任何结点的子树的所有 结点都是直接跟在该结点之后。( F )
• 11.一棵二叉树中序遍历序列的最后一个结点,发家是该 二叉树先序遍历的最后一个结点。 ( T )
B.CBDGFEA D.CBEGFDA
• 8.某二又树的后序遍历序列为DABEC,中序遍历序列为
DEBAC,则先序遍历序列为( D )。
• A.ACBED C.DEABC
B.DECAB D.CEDBA
• 9.在完全二叉树中,如果一个结点是叶子结点,则它没 有( C )。
• A.左孩子结点
B.右孩子结点
• 5.对于二叉树来说,第i层上最多有___2i-1______个结点。 • 6.由三个结点构成的二叉树,共有____5_____种不同的
结构。
• 7.由一棵二叉树的先序序列和___中序____序列可唯一 确定这棵二叉树。
习题6
• 9.先序序列和中序序列相同的二叉树为单右枝二叉树或 孤立结点。
• 10.设一棵二叉树共有50个叶子结点(终端结点),则有 ______49______度为2的结点。
• A. 5
B. 6
• C. 7
D. 8
• 6.二叉树的先序遍历序列为ABC的不同二叉树有( C ) 种形态。
• A. 3
B. 4
• C. 5
D.6
习题6
数据结构树习题
16、 假定在一棵二叉树中, 度为2的结点数为15, 度为1的结点数为30, 则叶子结点数为 ( 个。 A. 15 B. 16 C. 17 D. 47
)
17、在下列情况中,可称为二叉树的是( B ) 。 A. 每个结点至多有两棵子树的树 B. 哈夫曼树 C. 每个结点至多有两棵子树的有序树 D. 每个结点只有一棵子树 18、用顺序存储的方法,将完全二叉树中所有结点按层逐个从左到右的顺序存放在一维数 组R[1..n]中,若结点R[i]有左孩子,则其左孩子是( ) 。 A. R[2i-1] B. R[2i+1] C. R[2i] D. R[2/i] 19、下面说法中正确的是( ) 。 A. 度为2的树是二叉树 B. 度为2的有序树是二叉树 C. 子树有严格左右之分的树是二叉树 D. 子树有严格左右之分,且度不超过2的树是二叉树 20、树的先根序列等同于与该树对应的二叉树的( ) 。 A. 先序序列 B. 中序序列 C. 后序序列 21、按照二叉树的定义,具有3个结点的二叉树有( )种。 A. 3 B. 4 C. 5 D. 6
D. 层序序列
22、 由权值为3, 6, 7, 2, 5的叶子结点生成一棵哈夫曼树, 它的带权路径长度为 ( A. 51 B. 23 C. 53 D. 74
) 。
二、判断题 ( )1、存在这样的二叉树,对它采用任何次序的遍历,结果相同。 ( )2、中序遍历一棵二叉排序树的结点,可得到排好序的结点序列。 ( )3、对于任意非空二叉树,要设计其后序遍历的非递归算法而不使用堆栈结构,最 适合的方法是对该二叉树采用三叉链表。 ( )4、在哈夫曼编码中,当两个字符出现的频率相同时,其编码也相同,对于这种情 况应做特殊处理。 ( )5、一个含有n个结点的完全二叉树,它的高度是log2n+1。 ( )6、完全二叉树的某结点若无左孩子,则它必是叶结点。 三、填空题 1、具有n个结点的完全二叉树的深度是 。 2、哈夫曼树是其树的带权路径长度 的二叉树。 3 、 在 一 棵 二 叉 树 中 , 度 为 0 的 结 点 的 个 数 是 n0 , 度 为 2 的 结 点 的 个 数 为 n2 , 则 有 n0= 。 4、树内各结点度的 称为树的度。 四、代码填空题 1、函数InOrderTraverse(Bitree bt)实现二叉树的中序遍历,请在空格处将算法补 充完整。 void InOrderTraverse(BiTree bt){ if( ){ InOrderTraverse(bt->lchild); printf(“%c”,bt->data); ; }
数据结构 树 考试习题
第五章树11.不含任何结点的空树( )A)是一棵树 B)是一棵二叉树C)既不是树也不是二叉树 D)是一棵树也是一棵二叉树12.二叉树是非线性数据结构,所以( )A)它不能用顺序存储结构存储; B)它不能用链式存储结构存储;C)顺序存储结构和链式存储结构都能存储; D)顺序存储结构和链式存储结构都不能使用13.把一棵树转换为二叉树后,这棵二叉树的形态是( )A)唯一的 B)有多种C)有多种,但根结点都没有左孩子 D)有多种,但根结点都没有右孩子9. 11 , 8 , 6 , 2 , 5 的叶子结点生成一棵哈夫曼树,它的带权路径长度为()A) 24 B) 72 C) 48 D) 5310.一棵含18个结点的二叉树的高度至少为( )A) 3 B) 4 C) 6 D) 511.下面的二叉树中,( C )不是完全二叉树。
10. 设结点x和结点y是二叉树T中的任意两个结点,若在前序序列中x在y之前,而在中序序列中x在y之后,则x和y的关系是()A)x是y的左兄弟 B)x是y的右兄弟C)y是x的祖先 D)y是x的孩子11.设二叉树根结点的层次为1,所有含有15个结点的二叉树中,最小高度是()A) 6 B) 5 C) 4 D) 37.下列陈述中正确的是()A)二叉树是度为2的有序树B)二叉树中结点只有一个孩子时无左右之分C)二叉树中必有度为2的结点D)二叉树中最多只有两棵子树,并且有左右之分8. 树最适合用来表示()A)有序数据元素 B)无序数据元素C)元素之间具有分支层次关系的数据 D)元素之间无联系的元素9. 3个结点有()不同形态的二叉树A) 2 B) 3 C) 4 D) 56.二叉树是非线性数据结构,( )A)它不能用顺序存储结构存储; B)它不能用链式存储结构存储;C)顺序存储结构和链式存储结构都能存储;D)顺序存储结构和链式存储结构都不能使用7.二叉树上叶结点数等于( )A ) 分支结点数加1B ) 单分支结点数加1C ) 双分支结点数加1D ) 双分支结点数减18.如将一棵有n个结点的完全二叉树按顺序存放方式,存放在下标编号为0, 1,…, n-1的一维数组中,设某结点下标为k(k>0),则其双亲结点的下标是( )A ) (k-1)/2B ) (k+1)/2C ) k/2D ) k-18. 树最适合用来表示()。
数据结构第6章习题答案
第6章树和二叉树习题解答一、下面是有关二叉树的叙述,请判断正误(每小题1分,共10分)(√)1. 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。
(×)2.二叉树中每个结点的两棵子树的高度差等于1。
(√)3.二叉树中每个结点的两棵子树是有序的。
(×)4.二叉树中每个结点有两棵非空子树或有两棵空子树。
(×)5.二叉树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。
(应当是二叉排序树的特点)(×)6.二叉树中所有结点个数是2k-1-1,其中k是树的深度。
(应2i-1)(×)7.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。
(×)8.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i—1个结点。
(应2i-1)(√)9.用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。
(正确。
用二叉链表存储包含n个结点的二叉树,结点共有2n个链域。
由于二叉树中,除根结点外,每一个结点有且仅有一个双亲,所以只有n-1个结点的链域存放指向非空子女结点的指针,还有n+1个空指针。
)即有后继链接的指针仅n-1个。
(√)10. 〖01年考研题〗具有12个结点的完全二叉树有5个度为2的结点。
最快方法:用叶子数=[n/2]=6,再求n2=n0-1=5二、填空(每空1分,共15分)1.由3个结点所构成的二叉树有5种形态。
2. 【计算机研2000】一棵深度为6的满二叉树有n1+n2=0+ n2= n0-1=31 个分支结点和26-1 =32个叶子。
注:满二叉树没有度为1的结点,所以分支结点数就是二度结点数。
3.一棵具有257个结点的完全二叉树,它的深度为9。
(注:用⎣ log2(n) ⎦+1= ⎣ 8.xx ⎦+1=94.【全国专升本统考题】设一棵完全二叉树有700个结点,则共有350个叶子结点。
数据结构题
第六章树和二叉树简答题1、有一棵树的括号表示为A(B,C(E,F(G)),D),回答下面的问题:这棵树的根结点是谁?这棵树的叶子结点是什么?结点C的度是多少?这棵树的度是多少?这棵树的深度是多少?结点C的孩子结点是哪些?结点C的双亲结点是谁?2、若一棵度为4的树中度为1,2,3,4的结点个数分别是4,3,2,2,则该树中叶子结点的个数是多少?总结点个数是多少?3、一棵高度为h的完全k次数,如果按照层次自上向下、自左向右的顺序从1开始对全部结点编号,试问:最多有多少个结点?最少有多少个结点?编号为q的结点的第i个孩子结点的编号是多少?4、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数为结点的总个数为5、一棵完全二叉树有1001个结点,其中叶子结点的个数为6、一棵高度为h的完全二叉树至少有个结点。
7、一棵高度为5的完全二叉树至多有个结点。
8、设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树至少包含个结点。
9、一个具有1025个结点的二叉树的高度h为10、在一棵完全二叉树中,结点个数为n,则编号最大的分支结点的编号为11、一棵二叉树的先序遍历为ABCDEF,中序遍历为CBAEDF,则后序遍历为12、一棵二叉树的先序遍历为ABCDEFG,它的中序遍历可能为A.CABDEFGB. ABCDEFGC.DACEFBGD.ADCFEGB思考:二叉树的先序和中序遍历相同的条件是?二叉树的后序和中序遍历相同的条件是?13、一棵二叉树的后序遍历为DABEC,中序遍历为DEBAC,则先序遍历为14、一棵二叉树的先序遍历为EFHIGJK,中序遍历为HFIEJKG,则该二叉树根结点的右孩子为16、根据使用频率为5个字符设计的赫夫曼编码不可能的是A.111,110,10,01,00B.000,001,010,011,1C.100,11,10,1,0D.001,000,01,11,1017、根据使用频率为5个字符设计的赫夫曼编码不可能的是A. 000,001,010,011,1B.0000,0001,001,01,1C. 000,001,01,10,11D.00,100,101,110,11118、设有13个值,用它们组成一棵赫夫曼树,则该赫夫曼树共有个结点。
数据结构 树 考试习题
第五章树11.不含任何结点的空树( )A)是一棵树 B)是一棵二叉树C)既不是树也不是二叉树 D)是一棵树也是一棵二叉树12.二叉树是非线性数据结构,所以( )A)它不能用顺序存储结构存储; B)它不能用链式存储结构存储;C)顺序存储结构和链式存储结构都能存储; D)顺序存储结构和链式存储结构都不能使用13.把一棵树转换为二叉树后,这棵二叉树的形态是( )A)唯一的 B)有多种C)有多种,但根结点都没有左孩子 D)有多种,但根结点都没有右孩子9. 11 , 8 , 6 , 2 , 5 的叶子结点生成一棵哈夫曼树,它的带权路径长度为()A) 24 B)72 C) 48 D) 5310.一棵含18个结点的二叉树的高度至少为( )A) 3 B) 4 C) 6 D) 511.下面的二叉树中,( C )不是完全二叉树。
10. 设结点x和结点y是二叉树T中的任意两个结点,若在前序序列中x在y之前,而在中序序列中x在y之后,则x和y的关系是()A)x是y的左兄弟 B)x是y的右兄弟C)y是x的祖先 D)y是x的孩子11.设二叉树根结点的层次为1,所有含有15个结点的二叉树中,最小高度是()A) 6 B) 5 C) 4 D) 37.下列陈述中正确的是()A)二叉树是度为2的有序树B)二叉树中结点只有一个孩子时无左右之分C)二叉树中必有度为2的结点D)二叉树中最多只有两棵子树,并且有左右之分8. 树最适合用来表示()A)有序数据元素 B)无序数据元素C)元素之间具有分支层次关系的数据 D)元素之间无联系的元素9. 3个结点有()不同形态的二叉树A) 2 B) 3 C) 4 D) 56.二叉树是非线性数据结构,( )A)它不能用顺序存储结构存储; B)它不能用链式存储结构存储;C)顺序存储结构和链式存储结构都能存储;D)顺序存储结构和链式存储结构都不能使用7.二叉树上叶结点数等于( )A ) 分支结点数加1B ) 单分支结点数加1C ) 双分支结点数加1D ) 双分支结点数减18.如将一棵有n个结点的完全二叉树按顺序存放方式,存放在下标编号为0, 1,…, n-1的一维数组中,设某结点下标为k(k>0),则其双亲结点的下标是( )A ) (k-1)/2B ) (k+1)/2C ) k/2D ) k-18. 树最适合用来表示()。
数据结构作业第七章树
数据结构作业第7 章1.假设每个结点值为单个字符,而一棵树的层次遍历序列为ABCDEFGHIJ,则其根结点的值是。
A.A B. B C. J D. 以上都不对2.在一颗3 次树中度为3 的结点数为两个,度为2 的结点数为一个,度为1 的结点数为两个,则度为0 的结点数为个。
A.4 B. 5 C. 6 D. 73 . 对于一棵具有n 个结点、度为4 的树来说,。
A.树的高度最多是n-3B. 树的高度最多是n-3C. 第i 层上最多有4(i-1)个结点D. 至少在某一层上正好有4 个结点4.在任何一棵二叉树中,如果结点a 有左孩子b、右孩子c、则在结点的先序序列、中序序列、后序序列中,。
A.结点b 一定在结点a 前面B. 结点a 一定在结点c 前面C. 结点b 一定在结点c 前面D. 结点a 一定在结点b 前面5.设a、b 为一颗二叉树上的两个结点,在中序序列时,a 在b 之前的条件是。
A.a 在b 的右方 B. a 是b 的祖先C. a 在b 的左方D. a 是b 的子孙6.若二叉树的中序序列是abcdef,且c 为根结点,则。
A.结点c 有两个孩子B. 二叉树有两个度为0 的结点C. 二叉树的高度为5D. 以上都不对7.设有13 个值,用他们组成一颗哈夫曼树,则该哈夫曼树共有个结点。
A.13 B. 12 C.26 D. 258.在n 个结点的线索二叉树中(不计头结点),线索的数目为。
A.n-1B. nC. n+1D. 2n9.一棵度为2 的树中,其结点个数最少为。
10.设某棵树中结点值为单个字符,其后根遍历序列为ABCDEFG,则根结点值为。
11.一共8 层的完全二叉树至少有个结点,具有100 个结点的完全二叉树中结点的最大层数为。
12.设一棵完全二叉树(每个结点值为单个字符)的先序序列为abdecf,则该二叉树的中序序列为、层次序列为。
13.一棵二叉树的先序、中序和后序序列分别如下,其中有一部分未显示出来。
数据结构树图测试题(1)
一、填空题1. 一完全二叉树共有500个结点,则在该二叉树中有 个度为2的结点。
2. 设某二叉树的前序遍历序列为:ABCDEFGHI ,中序遍历序列为:BCAEDGHFI ,则该二叉树的后序遍历序列是 。
3. 对于一个稀疏图,在求该图对应的最小生成树时,Prim 算法和kruskal 算法哪一个算法效率更高 。
4. 对于一个n 个结点的满二叉树,假设该树有m 个树叶,深度为h ,则 h= 。
5. 设高度为h 的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为 ,至多为 。
6. 一棵有n 个结点的满二叉树有_ _ 个叶子,该满二叉树的深度为_ __。
7. 设F 是由T1,T2,T3三棵树组成的森林,与F 对应的二叉树为B,已知T1,T2,T3的结点数分别为n1,n2和n3则二叉树B 的左子树中有__ _个结点。
8. 一颗含有101个结点的完全二叉树存储在数组A[1..101]中,若A[k]为叶子结点,则k 的最小值是 。
9. 一颗深度为h 的完全二叉树上的结点总数最小值为 ,最大值为 。
二、选择题1. 设树T 的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1,则T 中的叶子数为( )。
A .5B .6C .7D .81. 在有向图G 的拓扑序列中,若顶点Vi 在顶点Vj 之前,则下列情形不可能出现的是( )。
A .G 中有弧<Vi ,Vj>B .G 中有一条从Vi 到Vj 的路径C .G 中没有弧<Vi,Vj>D .G 中有一条从Vj 到Vi 的路径 1. 若完全二叉树的结点总数为偶数,则度为1的结点有( )个。
A. 0B. 1C. 2D. 不确定1. 已知一棵二叉树的前序遍历结果为ABCDEF, 中序遍历结果为CBAEDF, 则后序遍历的结果为( )。
A .CBEFDAB . FEDCBAC . CBEDFAD .不定 1. 下述编码中哪一个不是前缀码( )。
数据结构(树)习题与答案
一、单选题1、树最适合用来表示()。
A.元素之间具有分支层次关系的数据B.有序数据元素C.元素之间无联系的数据D.无序数据元素正确答案:A2、在树结构中,若结点A有三个兄弟,且B是A的双亲,则B的度是()。
A.5B.4C.3D.2正确答案:B3、下列陈述中正确的是()。
A.二叉树是度为2的有序树B.二叉树中结点只有一个孩子时无左右之分C.二叉树中每个结点最多只有两棵子树,并且有左右之分D.二叉树中必有度为2的结点正确答案:C4、设深度为h的二叉树中只有度为0和度为2的结点,则此类二叉树中所包含结点数至少为()。
A.2h-1B.2h+1C.h+1D.2h正确答案:A解析: A、除根之外,每层只有两个结点,且互为兄弟。
5、设深度为h的二叉树中只有度为0和度为2的结点,则此类二叉树中所包含结点数至多为()。
A.2h-1B. 2h+1-1C. 2h-1-1D. 2h+1正确答案:A解析: A、构成完全二叉树。
6、具有n(n>0)个结点的完全二叉树的深度为()。
A.⌊ log2(n)⌋ +1B.⌈log2(n)⌉C.⌊ log2(n)⌋D.⌈log2(n)+1⌉正确答案:A7、具有32个结点的完全二叉树有()个叶子结点。
A.16B.14C.15D.17正确答案:A解析: A、对结点按层序编号,32号结点的双亲结点编号为16,则17至32号结点都为叶子,共16个。
8、一棵完全二叉树的第6层上有23个叶子结点,则此二叉树最多有()结点。
A.81B.78C.80D.79正确答案:A解析: A、完全二叉树的叶子结点只能在最下两层,要使结点最多,这棵二叉树深度为7,前6层结点数共为63,第6层有32个结点,其中叶子为23个,非叶子为9个,它们的度都为2,第7层只有18个结点,故整棵二叉树结点数为81.9、具有3个结点的二叉树有()种。
A.6B.3C.5D.4正确答案:C10、若一棵二叉树有9个度为2的结点,5个度为1的结点,则叶子结点的个数为()。
数据结构(树)历届初赛试题
1.(第七届)一棵二叉树的高度为h,所有结点的度为0,或为2,则此树最少有(A)个结点。
A)2h-1 B)2h-1 C)2h+1 D)h+12.(第六届)问题:已知,按中序遍历二叉树的结果为:abc问:有多少种不同形态的二叉树可以得到这一遍历结果,并画出这些二叉树。
5种3.(第八届)按照二叉数的定义,具有3个结点的二叉树有(C)种。
A)3 B)4 C)5 D)64.(第九届)一个高度为h的二叉树最小元素数目是(B)。
A)2h+l B)h C)2h-1 D)2h E)2h-l5.(第十届)二叉树T,已知其前序遍历序列为1 2 4 3 5 7 6,中序遍历序列为4 2 1 5 7 3 6,则其后序遍历序列为(B)。
A. 4 2 5 7 6 3 1B. 4 2 7 5 6 3 1C. 4 2 7 5 3 6 1D. 4 7 2 3 5 6 1E. 4 5 2 6 3 7 16.(第十届)满二叉树的叶结点个数为N,则它的结点总数为(C)。
A. NB. 2 * NC. 2 * N – 1D. 2 * N + 1E. 2N– 17.(第十一届)完全二叉树的结点个数为11,则它的叶结点个数为(E)。
A.4B.3C.5D.2E.68.(第十一届)二叉树T的宽度优先遍历序列为A B C D E F G H I,已知A是C的父结点,D是G的父结点,F是I的父结点,数中所有结点的最大深度为3,(根结点深度设为0),可知F的父结点是()。
A.无法确定B.BC.CD.DE.E9.(第十二届)高度为n的均衡的二叉树是指:如果去掉叶结点及相应的树枝,它应该是高度为n-1的满二叉树。
在这里,树高等于叶结点的最大深度,根结点的深度为0,如果某个均衡的二叉树共有2381个结点,则该树的树高为(B)。
A. 10B. 11C. 12D. 1310.(第十二届)已知6个结点的二叉树的先序遍历是1 2 3 4 5 6(数字为结点的编号,以下同),后序遍历是3 2 5 6 4 1,则该二叉树的可能的中序遍历是(B C )A. 3 2 1 4 6 5B. 3 2 1 5 4 6C. 2 1 3 5 4 6D. 2 3 1 4 6 5问题求解题:1、已知一棵二叉树的前序遍历的结果是ABECDFGHIJ,中序遍历的结果是EBCDAFHIGJ,试画出这棵二叉树。
数据结构第六章作业及答案
3、试分别画出具有3个结点的树和3个结点的二叉树 的所有不同形态。 4、对右图所示的二叉树求出 A 以下的遍历序列: B C (1)先序序列 D E F (2)中序序列 (3)后序序列 G H 5、假设一棵二叉树的先序序列为 EBADCFHGIKJ 和 中序序列为 ABCDEFGHIJK。请画出该树,并给 出后序序列。 6、假设一棵二叉树的中序序列为 DCBGEAHFIJK和 后序序列为 DCEGBFHKJIA 。请画出该树,并给 出先序序列。
2
7、将以下森林转换成二叉树。
A
B
C
D
E F G J I
H
L K
3
8、画出和下列二叉树相应的森林。
(a)
A
(b) (c)
A B C
(d)
A B C B C D B
(e)
A
C E F
A
G
J
H
K M
I
4
第六章作业解答 1、(1) M、N、D、L、F、J、K是叶子结点
(2) C是结点G的双亲 (3) A、C是结点G的祖先 (4) I、M、N是结点E的子孙 (5) 树的深度是5 2、(1)二叉树与树的区别: 二叉树的一个结点至多有2个子树,树则不然; 二叉树的一个结点有左、右之分,而树则没有此要求 (2)一棵度为2的树有2个分支,没有左、右之分, 一棵二叉树也可以有2个分支,但有左、右之分, 且左、右不能交换。 3、具有3个结点的树的形态为:
C D
E
F
K
7
7、解:转换后的二叉树为:
A B C D E F G J K I L H
8
8、解:转换后的森林为: (a) (b) (c)
A A B A B C
数据结构作业之输出树的每一条从根节点到叶节点的路径
数据结构作业之输出树的每一条从根节点到叶节点的路径树是一种常见的数据结构,它由若干个节点组成,这些节点之间通过边连接。
树具有以下特点:1.树中只有一个节点没有入度,我们称之为根节点。
2.树中的每个节点都有零个或多个子节点。
3.每个非根节点有且只有一个父节点。
4.从根节点到任意一个节点都有且只有一条路径。
输出树的每一条从根节点到叶节点的路径是一道常见的树算法题。
解决这道题可以使用深度优先(DFS)算法。
下面我们来详细介绍如何实现。
首先,我们可以定义一个辅助函数,用来遍历树的节点并输出路径。
该辅助函数需要传入以下参数:1.当前节点2.当前路径(保存从根节点到当前节点的路径)接下来我们详细描述辅助函数的实现:1.首先,判断当前节点是否为空。
如果为空,直接返回。
2.然后,将当前节点的值添加到路径中。
3.接着,判断当前节点是否为叶节点(即没有子节点)。
如果是叶节点,则输出路径。
4.如果当前节点不是叶节点,则递归调用辅助函数遍历当前节点的每个子节点,并传入更新后的路径。
5.最后,当遍历完当前节点的所有子节点后,将当前节点从路径中删除,以便继续遍历其他叶节点。
通过以上步骤,我们可以遍历所有的叶节点,并输出根节点到每个叶节点的路径。
下面是一段使用Python语言实现的示例代码:```pythonclass Node:def __init__(self, value):self.value = valueself.children = []def print_paths(root, path):if root is None:returnpath.append(root.value)if len(root.children) == 0:print(path)for child in root.children:print_paths(child, path)path.pop#示例用法#创建一个树root = Node(1)root.children.append(Node(2))root.children.append(Node(3))root.children[0].children.append(Node(4)) root.children[0].children.append(Node(5)) root.children[1].children.append(Node(6)) print_paths(root, [])```上述代码中的树结构如下所示:```/\23/\45/6```运行以上代码会输出:```[1,2,4][1,2,5][1,3,6]```这就是树的每一条从根节点到叶节点的路径。
数据结构 树 考试习题
第五章树11.不含任何结点的空树( )A)是一棵树 B)是一棵二叉树C)既不是树也不是二叉树 D)是一棵树也是一棵二叉树12.二叉树是非线性数据结构,所以( )A)它不能用顺序存储结构存储; B)它不能用链式存储结构存储;C)顺序存储结构和链式存储结构都能存储; D)顺序存储结构和链式存储结构都不能使用13.把一棵树转换为二叉树后,这棵二叉树的形态是( )A)唯一的 B)有多种C)有多种,但根结点都没有左孩子 D)有多种,但根结点都没有右孩子9. 11 , 8 , 6 , 2 , 5 的叶子结点生成一棵哈夫曼树,它的带权路径长度为()A) 24 B) 72 C) 48 D) 5310.一棵含18个结点的二叉树的高度至少为( )A) 3 B) 4 C) 6 D) 511.下面的二叉树中,( C )不是完全二叉树。
10. 设结点x和结点y是二叉树T中的任意两个结点,若在前序序列中x在y之前,而在中序序列中x在y之后,则x和y的关系是()A)x是y的左兄弟 B)x是y的右兄弟C)y是x的祖先 D)y是x的孩子11.设二叉树根结点的层次为1,所有含有15个结点的二叉树中,最小高度是()A) 6 B) 5 C) 4 D) 37.下列陈述中正确的是()A)二叉树是度为2的有序树B)二叉树中结点只有一个孩子时无左右之分C)二叉树中必有度为2的结点D)二叉树中最多只有两棵子树,并且有左右之分8. 树最适合用来表示()A)有序数据元素 B)无序数据元素C)元素之间具有分支层次关系的数据 D)元素之间无联系的元素9. 3个结点有()不同形态的二叉树A) 2 B) 3 C) 4 D) 56.二叉树是非线性数据结构,( )A)它不能用顺序存储结构存储; B)它不能用链式存储结构存储;C)顺序存储结构和链式存储结构都能存储;D)顺序存储结构和链式存储结构都不能使用7.二叉树上叶结点数等于( )A ) 分支结点数加1B ) 单分支结点数加1C ) 双分支结点数加1D ) 双分支结点数减18.如将一棵有n个结点的完全二叉树按顺序存放方式,存放在下标编号为0, 1,…, n-1的一维数组中,设某结点下标为k(k>0),则其双亲结点的下标是( )A ) (k-1)/2B ) (k+1)/2C ) k/2D ) k-18. 树最适合用来表示()。
数据结构 树和二叉树 习题
树与二叉树一.选择题1. 假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为( )个。
A .15B .16C .17D .472. 按照二叉树的定义,具有3个结点的不同形状的二叉树有( )种。
A. 3B. 4C. 5D. 63. 按照二叉树的定义,具有3个不同数据结点的不同的二叉树有( )种。
A. 5B. 6C. 30D. 324. 深度为5的二叉树至多有( )个结点。
1A. 16B. 32C. 31D. 10 5. 设高度为h 的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为( )。
A. 2hB. 2h-1C. 2h+1D. h+16. 对一个满二叉树2,m 个树叶,n 个结点,深度为h ,则( )。
A. n=h+m 3B. h+m=2nC. m=h-1D. n=2 h-17. 任何一棵二叉树的叶结点在先序.中序和后序遍历序列中的相对次序( )。
A.不发生改变B.发生改变C.不能确定D.以上都不对8. 如果某二叉树的前根次序遍历结果为stuwv ,中序遍历为uwtvs ,那么该二叉树的后序为( )。
A. uwvtsB. vwutsC. wuvtsD. wutsv9. 某二叉树的前序遍历结点访问顺序是abdgcefh ,中序遍历的结点访问顺序是dgbaechf ,则其后序遍历的结点访问顺序是( )。
A. bdgcefhaB. gdbecfhaC. bdgaechfD. gdbehfca 10. 在一非空二叉树的中序遍历序列中,根结点的右边( )。
A. 只有右子树上的所有结点B. 只有右子树上的部分结点C. 只有左子树上的部分结点D. 只有左子树上的所有结点 11. 树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历.中序遍历和后序遍历。
这里,我们把由树转化得到的二叉树4叫做这1深度为n 的二叉树结点至多有2n-12 满二叉树是除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树3 对于深度为h 的满二叉树,n=20+21+…+2h-1=2h-1,m=2h-1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5、判定两棵二叉树结构是否相同
问题:
给定两棵二叉树,判定其结构是否相同,即对应的所有结点值是否一样。
如下面(1)(2)两棵二叉树结构相同,但是(1)(3), (2)(3)不相同。
2 2 2
12. temp = node->left;
13. node->left = node->right;
14. node->right = temp;
15. }
16.}
[cpp] view plaincopy
01.//自顶向下完成镜像
07. oldLeft = root->left;
08. root->left = newNode(root->data); //复制根结点并将其作为新的左孩子,如图中所示,结点2复制一个作为原来根结点2的左孩子。
09. root->left->left = oldLeft; //复制的根结点的左孩子为原来的根结点的左孩子。如图中所示,复制的结点2的左孩子为原来根结点的左孩子结点1.
10.{
11. if (root == NULL) return;
12.
13. path[pathLen++] = root->data; //将根结点加入到路径数组中,路径长度加1
14. if (root->left==NULL && root->right==NULL) //到了叶子节点,所以打印输出路径。
03.{
04. int path[1000];
05. printPathsRecur(root, path, 0);
06.}
07.
08.//递归调用打印路径
09.void printPathsRecur(struct node* root, int path[], int pathLen)
02.{
03. struct node* oldLeft;
04. if (root == NULL) return;
05. doubleTree(root->left); //复制左子树
06. doubleTree(root->right); //复制右子树
您还未登录!|登录|注册|帮助
首页
业界
移动
云计算
研发
论坛
博客
下载
更多
石锅拌饭
一介书生,读两三卷诗书,四体不勤,五谷不分,行六百里路途,乱七八糟到大学,久不思上进,十分颓废之人的胡言乱语
目录视图
摘要视图
订阅
.
15. printArray(path, pathLen);
16. else {
17. printPathsRecur(root->left, path, pathLen); //递归打印左子树
18. printPathsRecur(root->right, path, pathLen); //递归打印右子树
pathstructnull存储
目录(?)[+]
在上一篇二叉树问题汇总(1)中总结了下二叉树的一些基本问题,主要是针对二叉排序树。这篇文章主要汇总二叉树的一些常见的但是难度稍大一点的问题。
1、判定二叉树是否存在和为给定值的路径
问题:
06. } else {
07. struct node* temp;
08. // 子树完成镜像
09. mirror(node->left);
10. mirror(node->right);
11. // 交换node的左右孩子节点
19. }
20.}
21.
22.//该函数打印输出路径。路径存储在数组path中,pathLen为路径结点个数。
23.void printArray(int path[], int pathLen)
24.{
25. int i;
26. for (i=0; i<pathLen; i++) {
10. return false;
11.}
6、二叉搜索树的数目
问题:
给定结点数目num,结点的data值为1,2,3...num。给出这些结点能够构造的二叉搜索树数目。
比如结点数目为3时,结点的data依次为1,2,3,则能够构造5棵二叉搜索树:
[cpp] view plaincopy
01.//自底向上,即先交换左右子树,再交换左右孩子节点。
02.void mirror(struct node* node)
03.{
04. if (node==NULL) {
05. return;
则该二叉树存在和为27的路径,因为5+4+11+7 = 27.若是给定和为40,则不存在这样的路径。
解答:
主要思路还是递归,通过用和值减去根结点的值,然后判断左右子树是否存在和为sum-root.data的路径。代码如下:
[cpp] view plaincopy
01.int hasPathSum(struct node* root, int sum)
02.{
03. if (a==NULL && b==NULL) //两棵树都为空,返回true
04. return true;
05. else if (a!=NULL && b!=NULL) { //两棵树都不为空,则比较根结点和递归比较左右子树
06. return a->data==b->data &&
解答:
还是递归。从底向上,先交换完根结点的左右子树,再交换根结点的左右孩子结点。自顶向下也是可以的,即先交换根结点的左右孩子,再递归交换左右子树。
递归主要要理解函数的意义,mirror函数的意义就是得到该二叉树的镜像,二叉树镜像时根结点不变。则mirror(node->left)将左子树镜像,mirror(node->right)将右子树镜像,此时,左右子树的根结点即node->left和node->right还没有交换,所以接下来交换它们,这样就完成了整棵树的镜像过程。
例如原来的二叉搜索3
复制后变成:
解答:
复制源结点,然后将其作为左孩子插入到源结点中。先复制完左右子树,然后将本结点复制插入到源结点的左孩子中。
[cpp] view plaincopy
01.void doubleTree(struct node* root)
2014年1月微软MVP申请开始啦! 2013年10月微软MVP当选名单揭晓! Tag功能介绍—我们为什么打Tag “说说家乡的互联网”主题有奖征文
二叉树问题汇总(2)—常见问题
.
分类: 面试题系列数据结构与算法二叉树2012-07-19 21:43553人阅读评论(0)收藏举报
解答:
先判定根结点的data域是否相同,如果相同则继续判断左右子树。一定是根结点和左右子树都相同才能判定两棵二叉树结构相同。
特殊情况处理:如果两棵树都为NULL,则相同。其他一棵为NULL,一棵不为NULL则不同。
[cpp] view plaincopy
01.int sameTree(struct node* a, struct node* b)
05.}
2、打印二叉树的所有路径(从根结点到叶结点)
问题:
如1中所示,打印二叉树的所有从根结点到叶结点的路径,如上例中打印输出4条路径。
解答:
[cpp] view plaincopy
01.//打印路径主函数
02.void printPaths(struct node* root)
02.{
03. if (root == NULL) return sum == 0; //基本条件:根结点为NULL,则判断此时剩下的和值是否为0,为0则表示存在,否则不存在
04. return hasPathSum(root->left, sum-root->data) || hasPathSum(root->right, sum-root->data); //递归判断左右子树
07. sameTree(a->left, b->left) &&
08. sameTree(a->right, b->right);
09. } else //其他情况,一棵树为空,一棵不为空,返回false
1 1 2 3 3
\ \ / \ / /
给定一个值,判定二叉树是否存在从根结点到叶结点的路径,其结点的数据之和为该值。
比如二叉树如下所示,给定的和为27:
则二叉树存在的根结点到叶结点的路径有:
path 1: 5 4 11 7
path 2: 5 4 11 2
path 3: 5 8 13
path 4: 5 8 4 1
/ \ / \ / \
1 3 1 3 3 1
(1) (2) (3)
27. printf("%d ", path[i]);
28. }
29. printf("\n");
30.}
3、二叉树镜像
问题:
二叉树镜像问题即是将二叉树所有结点的左右孩子结点指针互换。如下图所示,左边的二叉树的镜像为右边所示。
07. root->right = tmp;