文档库 最新最全的文档下载
当前位置:文档库 › 第5章 树与二叉树习题参考答案

第5章 树与二叉树习题参考答案

第5章 树与二叉树习题参考答案
第5章 树与二叉树习题参考答案

习题五参考答案

一、选择题

1.对一棵树进行后根遍历操作与对这棵树所对应的二叉树进行( B )遍历操作相同。

A.先根 B. 中根 C. 后根 D. 层次

2.在哈夫曼树中,任何一个结点它的度都是( C )。

B.0或1 B. 1或2 C. 0或2 D. 0或1或2

3.对一棵深度为h的二叉树,其结点的个数最多为( D )。

A.2h B. 2h-1 C. 2h-1 D. 2h-1

4.一棵非空二叉树的先根遍历与中根遍历正好相同,则该二叉树满足( A )A.所有结点无左孩子 B. 所有结点无右孩子

C. 只有一个根结点

D. 任意一棵二叉树

5.一棵非空二叉树的先根遍历与中根遍历正好相反,则该二叉树满足( B )B.所有结点无左孩子 B. 所有结点无右孩子

C. 只有一个根结点

D. 任意一棵二叉树

6.假设一棵二叉树中度为1的结点个数为5,度为2的结点个数为3,则这棵二叉树的叶结点的个数是( C )

A.2 B. 3 C. 4 D. 5

7.若某棵二叉树的先根遍历序列为ABCDEF,中根遍历序列为CBDAEF,则这棵二叉树的后根遍历序列为( B )。

A.FEDCBA B. CDBFEA C. CDBEFA D. DCBEFA

8.若某棵二叉树的后根遍历序列为DBEFCA,中根遍历序列为DBAECF,则这棵二叉树的先根遍历序列为( B )。

A.ABCDEF B. ABDCEF C. ABCDFE D. ABDECF

9.根据以权值为{2,5,7,9,12}构造的哈夫曼树所构造的哈夫曼编码中最大的长度为( B )A.2 B. 3 C. 4 D. 5

10.在有n个结点的二叉树的二叉链表存储结构中有( C )个空的指针域。

A.n-1 B. n C. n+1 D. 0

二、填空题

1.在一棵度为m的树中,若度为1的结点有n1个,度为2的结点有n2个,……,度为m

的结点有n m个,则这棵树中的叶结点的个数为1+n2+2n3+3n4+…+(m-1)n m。

2.一棵具有n个结点的二叉树,其深度最多为 n ,最少为 [log2n]+1 。

3.一棵具有100个结点的完全二叉树,其叶结点的个数为 50 。

4.以{5,9,12,13,20,30}为叶结点的权值所构造的哈夫曼树的带权路径长度是 217 。

5.有m个叶结点的哈夫曼树中,结点的总数是 2m-1 。

6.若一棵完全二叉树的第4层(根结点在第0层)有7个结点,则这棵完全二叉树的结点总

数是 11 。

7.在深度为k的完全二叉树中至少有 k个结点,至多有 2k-1 个结点。

8.对一棵树转换成的二叉树进行先根遍历所得的遍历序列为ABCDEFGH,则对这棵树进行

先根遍历所得的遍历序列为 ABCDEFGH 。

9.二叉树常用的存储结构是二叉链式存储结构,树常用的存储结构是孩子兄弟链表存

储结构。

10.对森林进行后根遍历操作等同于从左到右对森林中的每一棵树进行后根遍历操作,并

且对森林的后根遍历序列与对森林所对应的二叉树的中根遍历序列相同。

四、算法设计题

1.编写一个基于二叉树类的统计叶结点数目的成员函数。

参考答案:

public int countLeafNode(BiTreeNode T) {// 统计叶结点数目

int count = 0;

if (T != null) {

if (T.getLchild() == null && T.getRchild() == null) {

++count;// 叶结点数增1

} else {

count += countLeafNode(T.getLchild()); // 加上左子树上叶结点数

count += countLeafNode(T.getRchild());// 加上右子树上的叶结点数}

}

return count;

}

2.编写一个基于二叉树类的查找二叉树结点的成员函数。

参考答案:

public BiTreeNode searchNode(BiTreeNode T,Object x) {

// 在以T为根结点的二叉树中查找值为x的结点,若找到,则返回该结点,否则返回空值

if (T != null) {

if (T.getData().equals(x))

return T;

else {

BiTreeNode lresult= searchNode(T.getLchild(),x); // 在左子树上查找

return (lresult!=null?lresult:searchNode(T.getRchild(),x)) ;

// 若左子树上没找到,则到右子树上找

}

}

return null;

}

3.编写算法求一棵二叉树的根结点root到一个指定结点p之间的路径并输出。

参考答案:

// 求根结点到指定结点的路径过程中,采用了后跟遍历的思想,最终求得的路径保存在一个链栈中,其中根结点处于栈顶位置,指定结点处于栈底位置。

//下面用到的二叉树结点类BiTreeNode在书中第5章中已给出

public LinkStack getPath(BiTreeNode root, BiTreeNode p) {

BiTreeNode T = root;

LinkStack S = new LinkStack();// 构造链栈

if (T != null) {

S.push(T); // 根结点进栈

Boolean flag;// 访问标记

BiTreeNode q = null;// q指向刚被访问的结点

while (!S.isEmpty()) {

while (S.peek() != null)

// 将栈顶结点的所有左孩子结点入栈

S.push(((BiTreeNode) S.peek()).getLchild());

S.pop(); // 空结点退栈

while (!S.isEmpty()) {

T = (BiTreeNode) S.peek();// 查看栈顶元素

if (T.getRchild() == null || T.getRchild() == q) {

if (T.equals(p)) {

// 对栈S进行倒置,以保证根结点处于栈顶位置

LinkStack S2 = new LinkStack();

while (!S.isEmpty())

S2.push(S.pop());

return S2;

}

S.pop();// 移除栈顶元素

q = T;// q指向刚被访问的结点

flag = true;// 设置访问标记

} else {

S.push(T.getRchild());// 右孩子结点入栈

flag = false;// 设置未被访问标记

}

if (!flag)

break;

}

}

}

return null;

}

4.编写算法统计树(基于孩子兄弟链表存储结构)的叶子数目。

参考答案:

//下面用到的孩子兄弟链表结构中的结点类CSTreeNode在书中第5章中已给出

public int countLeafNode(CSTreeNode T) {

int count = 0;

if (T != null) {

if (T.getFirstchild() == null)

++count;// 叶结点数增1

else

count += countLeafNode(T.getFirstchild()); // 加上孩子上叶结点数

count += countLeafNode(T.getNextsibling());// 加上兄弟上叶结点数}

return count;

}

5.编写算法计算树(基于孩子兄弟链表存储结构)的深度。

参考答案:

public int treeDepth(CSTreeNode T) {

if (T != null) {

int h1= treeDepth(T.getFirstchild());

int h2= treeDepth(T.getNextsibling());

return h1+1>h2?h1+1:h2;

}

return 0;

}

树和二叉树习题集与答案解析

一、填空题 1. 不相交的树的聚集称之为森林。 2. 从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是_树可采用孩子-兄弟链表(二叉链表)做存储结构,目的是利用二叉树的已有算法解决树的有关问题。 3. 深度为k的完全二叉树至少有2 k-1个结点。至多有2 k-1个结点,若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是2 k-2+1。 4. 在一棵二叉树中,度为零的结点的个数为n 0,度为2的结点的个数为n 2,则有n0= n2+1。 5. 一棵二叉树的第i(i≥1)层最多有2 i-1个结点;一棵有n(n>0)个结点的满二叉树共有(n+1)/2个叶子和(n-1)/2个非终端结点。 6.现有按中序遍历二叉树的结果为abc,问有5种不同形态的二叉树 可以得到这一遍历结果。 7. 哈夫曼树是带权路径最小的二叉树。 8. 前缀编码是指任一个字符的编码都不是另一个字符编码的前缀的一种编码方法,是设计不等长编码的前提。 9. 以给定的数据集合{4,5,6,7,10,12,18}为结点权值构造的Huffman树的加权路径长度是165 。 10. 树被定义为连通而不具有回路的(无向)图。 11. 若一棵根树的每个结点最多只有两个孩子,且孩子又有左、右之分,次序不能颠倒,则称此根树为二叉树。

12. 高度为k,且有个结点的二叉树称为二叉树。 2k-1 满 13. 带权路径长度最小的二叉树称为最优二叉树,它又被称为树。 Huffman 14. 在一棵根树中,树根是为零的结点,而为零的结点是 结点。 入度出度树叶 15. Huffman树中,结点的带权路径长度是指由到之间的路径长度与结点权值的乘积。 结点树根 16. 满二叉树是指高度为k,且有个结点的二叉树。二叉树的每一层i上,最多有个结点。 2k-1 2i-1 二、单选题 1. 具有10个叶结点的二叉树中有(B) 个度为2的结点。 (A)8 (B)9 (C)10 (D)11 2.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用_(3)次序的遍历实现编号。 (1)先序(2)中序 (3)后序(4)从根开始按层遍历 3. 由2、3、4、7作为结点权值构造的树的加权路径长度 B 。

树与二叉树练习题

树与二叉树练习题(五) 习题2010-05-25 17:27:01 阅读134 评论0 字号:大中小订阅 1. 己知二叉树采用二叉链表方式存放,要求返回二叉树T的后序序列中的第一个结点的指针,是否可以不用递归且不用栈来完成?请说明原因。 2.具有n个结点的满二叉树的叶子结点的个数是多少?说明理由。 3.列出先序遍历能得到ABC序列的所有不同的二又树。 4.画出同时满足下列两个条件的两棵不同的二叉树: (1) 按先序遍历二叉树顺序为ABCDE; (2) 高度为5,其对应的树(森林)的高度最大为4。 5.对于表达式(a-b+c)*d/(e+f) (1) 画出它的中序二叉树,并标出该二叉树的前序线索; (2) 给出它的前缀表达式和后缀表达式。 6.试找出分别满足下列条件的所有二叉树: (1) 先序序列和中序序列相同; (2) 中序序列和后序序列相同; (3) 先序序列和后序序列相同。 7. 阅读下列算法的描述,根据算法的要求,在相应的空格处写出正确合理的语句。后序遍历二叉树的非递归算法,bt是二叉树的根,S是一个栈,MaxSize是栈的最大容量。 typedef struct Node{ BTNode *[MaxSize+1]; int top; } stacktyp; void PostOrder(BTNode *bt) { BTNode *p, *q = bt; stacktyp S; int flag; S.top = -1; do{ while(q != NULL){ S.top++; if(S.top > MaxSize){ printf("Stack Full!"); exit(0); } else S.data[S.top] = q; _______①_____; }

目前最完整的数据结构1800题包括完整答案树和二叉树答案

第6章树和二叉树 部分答案解释如下。 12. 由二叉树结点的公式:n=n0+n1+n2=n0+n1+(n0-1)=2n0+n1-1,因为n=1001,所以1002=2n0+n1,在完全二叉树树中,n1只能取0或1,在本题中只能取0,故n=501,因此选E。 42.前序序列是“根左右”,后序序列是“左右根”,若要这两个序列相反,只有单支树,所以本题的A和B均对,单支树的特点是只有一个叶子结点,故C是最合适的,选C。A或B 都不全。由本题可解答44题。 47. 左子树为空的二叉树的根结点的左线索为空(无前驱),先序序列的最后结点的右线索为空(无后继),共2个空链域。 52.线索二叉树是利用二叉树的空链域加上线索,n个结点的二叉树有n+1个空链域。 部分答案解释如下。 6.只有在确定何序(前序、中序、后序或层次)遍历后,遍历结果才唯一。 19.任何结点至多只有左子树的二叉树的遍历就不需要栈。 24. 只对完全二叉树适用,编号为i的结点的左儿子的编号为2i(2i<=n),右儿子是2i+1(2i+1<=n) 37. 其中序前驱是其左子树上按中序遍历的最右边的结点(叶子或无右子女),该结点无右孩子。 38 . 新插入的结点都是叶子结点。 42. 在二叉树上,对有左右子女的结点,其中序前驱是其左子树上按中序遍历的最右边的结点(该结点的后继指针指向祖先),中序后继是其右子树上按中序遍历的最左边的结点(该结点的前驱指针指向祖先)。 44.非空二叉树中序遍历第一个结点无前驱,最后一个结点无后继,这两个结点的前驱线索和后继线索为空指针。 三.填空题

1.(1)根结点(2)左子树(3)右子树 2.(1)双亲链表表示法(2)孩子链表表示法(3)孩 子兄弟表示法 3.p->lchild==null && p->rchlid==null 4.(1) ++a*b3*4-cd (2)18 5.平衡 因子 6. 9 7. 12 8.(1)2k-1 (2)2k-1 9.(1)2H-1 (2)2H-1 (3)H=?log2N?+1 10. 用顺序存储二叉树时,要按完全二叉树的形式存储,非完全二叉树存储时,要加“虚结 点”。设编号为i和j的结点在顺序存储中的下标为s 和t ,则结点i和j在同一层上的条 件是?log2s?=?log2t?。 11. ?log2i?=?log2j?12.(1)0 (2)(n-1)/2 (3)(n+1)/2 (4) ?log2n?+1 13.n 14. N2+1 15.(1) 2K+1-1 (2) k+1 16. ?N/2? 17. 2k-2 18. 64 19. 99 20. 11 21.(1) n1-1 (2)n2+n3 22.(1)2k-2+1(第k层1个结点,总结点个数是2H-1,其双亲是2H-1/2=2k-2)(2) ?log2i?+1 23.69 24. 4 25.3h-1 26. ?n/2? 27. ?log2k?+1 28.(1)完全二叉树 (2)单枝树,树中任一结点(除最后一个结点是叶子外),只有左子女或 只有右子女。 29.N+1 30.(1) 128(第七层满,加第八层1个) (2) 7 31. 0至多个。任意二叉树,度为1的结点个数没限制。只有完全二叉树,度为1的结点个 数才至多为1。 32.21 33.(1)2 (2) n-1 (3) 1 (4) n (5) 1 (6) n-1 34.(1) FEGHDCB (2)BEF(该二叉树转换成森林,含三棵树,其第一棵树的先根次序是 BEF) 35.(1)先序(2)中序 36. (1)EACBDGF (2)2 37.任何结点至多只有右子女 的二叉树。 38.(1)a (2) dbe (3) hfcg 39.(1) . (2) ...GD.B...HE..FCA 40.DGEBFCA 41.(1)5 (2)略 42.二叉排序树 43.二叉树 44. 前序 45.(1)先根次序(2)中根次序46.双亲的右子树中最左下的叶子结点47.2 48.(n+1)/2 49.31(x的后继是经x的双亲y的右子树中最左下的叶结点) 50.(1)前驱 (2)后 继 51.(1)1 (2)y^.lchild (3)0 (4)x (5)1 (6) y (7)x(编者注:本题按 中序线索化) 52.带权路径长度最小的二叉树,又称最优二叉树 53.69 54.(1)6 (2)261 55.(1)80 (2)001(不唯一)56.2n0-1 57.本题①是表达式求值,②是在二叉排序树中删除值为x的结点。首先查找x,若没有x, 则结束。否则分成四种情况讨论:x结点有左右子树;只有左子树;只有右子树和本身是叶 子。 (1)Postoder_eval(t^.Lchild) (2) Postorder_eval(t^.Rchild) (3)ERROR(无此运 算符)(4)A (5)tempA^.Lchild (6)tempA=NULL(7)q^.Rchild (8)q (9)tempA^.Rchild (10)tempA^.Item

二叉树习题及答案

1.设一棵完全二叉树共有699 个结点,则在该二叉树中的叶子结点数? 1根据二叉树的第i层至多有2A(i - 1)个结点;深度为k的二叉树至多有2A k - 1 个结点(根结点的深度为1)”这个性质: 因为2A9-1 < 699 < 2A10-1 , 所以这个完全二叉树的深度是10,前9 层是一个满二叉树, 这样的话,前九层的结点就有2A9-1=511 个;而第九层的结点数是2A(9-1)=256 所以第十层的叶子结点数是699-511=188 个;现在来算第九层的叶子结点个数。由于第十层的叶子结点是从第九层延伸的,所以应该去掉第九层中还有子树的结点。因为第十层有188 个,所以应该去掉第九层中的188/2=94 个;所以,第九层的叶子结点个数是256-94=162,加上第十层有188 个,最后结果是350 个 2完全二叉树:若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的结点 (叶结点) 都依次排列在该层最左边的位置上,这样的二叉树为完全二叉树。 比如图:完全二叉树除叶结点层外的所有结点数(叶结点层以上所有结点数)为奇数,此题中,699 是奇数,叶结点层以上的所有结点数为保证是奇数,则叶结点数必是偶数,这样我们可以立即选出答案为B!如果完全二叉树的叶结点都排满了,则是满二叉树,易得满二叉树的叶结点数是其以上所有层结点数+1 比如图: 此题的其实是一棵满二叉树,我们根据以上性质,699+1=700,700/2=350,即叶结点数为350,叶结点层以上所有结点数为350-1=349。 3完全二叉树中,只存在度为2 的结点和度为0 的结点,而二叉树的性质中有一条是: nO=n2+1 ; nO指度为0的结点,即叶子结点,n2指度为2的结点,所以2n2+1=699 n2=349 ; n0=350 2.在一棵二叉树上第 5 层的结点数最多是多少一棵二叉树,如果每个结点都是是满的,那么会满足2A(k-1)1 。所以第5 层至多有2A(5-1)=16 个结点! 3.在深度为5 的满二叉树中,叶子结点的个数为答案是16 ~ 叶子结点就是没有后件的结点~ 说白了~ 就是二叉树的最后一层~ 深度为K 的二叉树~ 最多有2Ak-1 个结点~ 最多有2A(k-1) 个结点~ 所以此题~ 最多有2A5-1=31 个结点~ 最多有2A(5-1)=16 个叶子结点~ 4.某二叉树中度为2 的结点有18 个,则该二叉树中有几个叶子结点?结点的度是指树中每个结点具有的子树个数或者说是后继结点数。 题中的度为2 是说具有的2 个子树的结点;二叉树有个性质:二叉树上叶子结点数等于度为2 的结点数加1。 5.在深度为7 的满二叉树中,度为2 的结点个数为多少,就是第一层只有一个节点,他有两个子节点,第二层有两个节点,他们也都有两个子节点以此类推,所以到第6 层,就有2的5次方个节点,他们都有两个子节点最后第7 层都没有子节点了。因为是深度为7 的。 所以就是1+2+4+8+16+32 了 2深度为1的时候有0个 深度为2的时候有1个 深度为3的时候有3个 深度为4的时候有7个 深度为n的时候有(2的n-1次方减1 )个 6?—棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为?

数据结构第六章树和二叉树习题及答案

习题六树和二叉树 一、单项选择题 1.以下说法错误的是() A. 树形结构的特点是一个结点可以有多个直接前趋 B. 线性结构中的一个结点至多只有一个直接后继 C. 树形结构可以表达(组织)更复杂的数据 D. 树(及一切树形结构)是一种”分支层次”结构 E. 任何只含一个结点的集合是一棵树 2. 下列说法中正确的是() A. 任何一棵二叉树中至少有一个结点的度为2 B. 任何一棵二叉树中每个结点的度都为2 C. 任何一棵二叉树中的度肯定等于2 D. 任何一棵二叉树中的度可以小于2 3. 讨论树、森林和二叉树的关系,目的是为了() 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+M3 7.一棵完全二叉树上有1001个结点,其中叶子结点的个数是() A.250 B .500 C .254 D .505 E .以上答案都不对 8. 设给定权值总数有n 个,其哈夫曼树的结点总数为() A. 不确定 B . 2n C . 2n+1 D . 2n-1 9.二叉树的第I 层上最多含有结点数为() I I-1 I-1 I A.2I B .2 I-1 -1 C .2 I-1 D .2 I -1 10.一棵二叉树高度为h, 所有结点的度或为0,或为2,则这棵二叉树最少有()结点A.2h B .2h-1 C .2h+1 D .h+1 11. 利用二叉链表存储树,则根结点的右指针是()。 A.指向最左孩子 B .指向最右孩子 C .空D .非空 12.已知一棵二叉树的前序遍历结果为为()。 A.CBEFDA B .FEDCBA 13.已知某二叉树的后序遍历序列是()。 ABCDEF中序遍历结果 为 C .CBEDFA D dabec, 中序遍历序列是 CBAEDF则后序遍历的结 果 .不定 debac , 它的前序遍历是

树和二叉树习题数据结构

习题六树和二叉树一、单项选择题 1.以下说法错误的是 ( ) A.树形结构的特点是一个结点可以有多个直接前趋B.线性结构中的一个结点至多只有一个直接后继 C.树形结构可以表达(组织)更复杂的数据 D.树(及一切树形结构)是一种"分支层次"结构 E.任何只含一个结点的集合是一棵树 2.下列说法中正确的是 ( ) A.任何一棵二叉树中至少有一个结点的度为2 B.任何一棵二叉树中每个结点的度都为2 C.任何一棵二叉树中的度肯定等于2 D.任何一棵二叉树中的度可以小于2 3.讨论树、森林和二叉树的关系,目的是为了()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+M3 7.一棵完全二叉树上有1001个结点,其中叶子结点的个数是() A. 250 B. 500 C.254 D.505 E.以上答案都不对 8. 设给定权值总数有n 个,其哈夫曼树的结点总数为( ) A.不确定 B.2n C.2n+1 D.2n-1 9.二叉树的第I层上最多含有结点数为() A.2I B. 2I-1-1 C. 2I-1 D.2I -1

树和二叉树练习题答案

第5章树和二叉树练习题答案 一、下面是有关二叉树的叙述,请判断正误 (√)1. 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。(×)2.二叉树中每个结点的两棵子树的高度差等于1。 (√)3.二叉树中每个结点的两棵子树是有序的。 (×)4.二叉树中每个结点有两棵非空子树或有两棵空子树。 (×)5.二叉树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。(应当是二叉排序树的特点) (×)6.满二叉树中所有结点个数是2k-1-1,其中k是树的深度。(应2k-1) (×)7.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。 (×)8.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i—1个结点。(应2i-1)(√)9.用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。 (正确。用二叉链表存储包含n个结点的二叉树,结点共有2n个链域。由于二叉树中,除根结点外,每一个结点有且仅有一个双亲,所以只有n-1个结点的链域存放指向非空子女结点的指针,还有n+1个空指针。)即有后继链接的指针仅n-1个。 (√)10.具有12个结点的完全二叉树有5个度为2的结点。 二、填空 1.由3个结点所构成的二叉树有5种形态。 2. 一棵深度为6的满二叉树有n1+n2=0+ n2= n0-1=31 个分支结点和26-1 =32个叶子。 注:满二叉树没有度为1的结点,所以分支结点数就是二度结点数。 3.一棵具有257个结点的完全二叉树,它的深度为9。 (注:用? log2(n) ?+1= ? 8.xx ?+1=9 4.设一棵完全二叉树有700个结点,则共有350个叶子结点。 5. 设一棵完全二叉树具有1000个结点,则此完全二叉树有500个叶子结点,有499个度为2的结点,有1个结点只有非空左子树,有0个结点只有非空右子树。 答:最快方法:用叶子数=[n/2]=500 ,n2=n0-1=499。另外,最后一结点为2i属于左叶子,右叶子是空的,所以有1个非空左子树。完全二叉树的特点决定不可能有左空右不空的情况,所以非空右子树数=0. 6.一棵含有n个结点的k叉树,可能达到的最大深度为n,最小深度为2。 答:当k=1(单叉树)时应该最深,深度=n(层);当k=n-1(n-1叉树)时应该最浅,深度=2(层),但不包括n=0或1时的特例情况。 7. 二叉树的基本组成部分是:根(N)、左子树(L)和右子树(R)。因而二叉树的遍历次序有六种。最常用的是三种:前序法(即按N L R次序),后序法(即按L R N次序)和中序法(也称对称序法,即按L N R次序)。这三种方法相互之间有关联。若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是 F E G H D C B。 解:法1:先由已知条件画图,再后序遍历得到结果; 法2:不画图也能快速得出后序序列,只要找到根的位置特征。由前 序先确定root,由中序先确定左子树。例如,前序遍历BEFCGDH中, 根结点在最前面,是B;则后序遍历中B一定在最后面。 法3:递归计算。如B在前序序列中第一,中序中在中间(可知左 右子树上有哪些元素),则在后序中必为最后。如法对B的左右子树同 样处理,则问题得解。

树和二叉树习题)

第6章 树和二叉树 一、选择题 1.算术表达式a+b*(c+d/e )转为后缀表达式后为( B ) A .ab+cde/* B .abcde/+*+ C .abcde/*++ D .2. 设有一表示算术表达式的二叉树(见下图), 它所表示的算术表达式是( C ) A. A*B+C/(D*E)+(F-G) B. (A*B+C)/(D*E)+(F-G) C. (A*B+C)/(D*E+(F-G )) D. A*B+C/D*E+F-G 3. 设树T 的度为4,其中度为1,2,3和4的结点个数分别为4,2,1( D ) A .5 B .6 C .7 D .8 4. 在下述结论中,正确的是( D ) ①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意交换; ④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。 A .①②③ B .②③④ C .②④ D .①④ 5. 设森林F 对应的二叉树为B ,它有m 个结点,B 的根为p,p 的右子树结点个数为n,森林F 中第一棵树的结点个数是( A ) A .m-n B .m-n-1 C .n+1 D .条件不足,无法确定 6.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( B ) A .9 B .11 C .15 D .不确定 7.设森林F 中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。与森林F 对应的二叉树根结点的右子树上的结点个数是( D )。 A .M1 B .M1+M2 C .M3 D .M2+M3 8.一棵完全二叉树上有1001个结点,其中叶子结点的个数是( E ) A . 250 B . 500 C .254 D .505 E .以上答案都不对(501) 9. 有关二叉树下列说法正确的是( B ) A .二叉树的度为2 B .一棵二叉树的度可以小于2 C .二叉树中至少有一个结点的度为2 D .二叉树中任何一个结点的度都为2 10.二叉树的第I 层上最多含有结点数为( c ) A .2I B . 2I-1-1 C . 2I-1 D .2I -1 11. 一个具有1025个结点的二叉树的高h 为( C ) A .11 B .10 C .11至1025之间 D .10至1024之间 12.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( B )结点 A .2h B .2h-1 C .2h+1 D .h+1 13. 一棵树高为K 的完全二叉树至少有( C )个结点 A .2k –1 B. 2k-1 –1 C. 2k-1 D. 2k 14.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( C )次序的遍历实现编号。 A .先序 B. 中序 C. 后序 D. 从根开始按层次遍历 15.一棵二叉树的前序遍历序列为ABCDEFG ,它的中序遍历序列可能是( B ) A .CABDEFG B .ABCDEFG C .DACEFBG D .ADCFEG

树练习题(答案)

《树》练习题 一、单项选择题 1、在一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1 的结点数为2个,则度为0的结点数为()个。 A. 4 B. 5 C. 6 D. 7 2、假设在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数 为()个。 A. 15 B. 16 C. 17 D. 47 3、假定一棵三叉树的结点数为50,则它的最小高度为()。(根为第0层) A. 3 B. 4 C. 5 D. 6 4、在一棵二叉树上第3层的结点数最多为()(根为第0层)。 A. 2 B. 4 C. 6 D. 8 5、用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组中R[1..n],结点 R[i]若有左孩子,其左孩子的编号为结点()。(若存放在R[0..n-1]则左孩子R[2i+1]) A. R[2i+1] B. R[2i] C. R[i/2] D. R[2i-1] 6、将含100个结点的完全二叉树,按照从上层到下层、同层从左到右的次序依次给它 们编以从0开始的连续自然数,则编号为40的结点X的双亲的编号为( )。 A.19 B.20 C. 21 D.39 7、由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为 ()。 A. 24 B. 48 C. 72 D. 53 8、设n , m 为一棵二叉树上的两个结点,在中序遍历序列中n在m前的条件是()。 A. n在m右方 B. n在m 左方 C. n是m的祖先 D. n是m的子孙 9、如果F是由有序树T转换而来的二叉树,那么T中结点的前序就是F中结点的()。 A. 中序 B. 前序 C. 后序 D. 层次序 10、下面叙述正确的是()。 A. 二叉树不是树 B. 二叉树等价于度为2的树 C. 完全二叉树必为满二叉树 D. 二叉树的左右子树有次序之分 11、任何一棵二叉树的叶子结点在先序、中序和后序遍历序列中的相对次序()。 A. 不发生改变 B. 发生改变 C. 不能确定 D. 以上都不对 12、已知一棵完全二叉树的结点总数为9个,则最后一层的结点数为()。 A. 1 B. 2 C. 3 D. 4 13、下列图示的顺序存储结构表示的二叉树是( )。

二叉树习题及答案

1.设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数? 1根据“二叉树的第i层至多有2^(i ? 1)个结点;深度为k的二叉树至多有2^k ? 1个结点(根结点的深度为1)”这个性质: 因为2^9-1 < 699 < 2^10-1 ,所以这个完全二叉树的深度就是10,前9层就是一个满二叉树, 这样的话,前九层的结点就有2^9-1=511个;而第九层的结点数就是2^(9-1)=256 所以第十层的叶子结点数就是699-511=188个; 现在来算第九层的叶子结点个数。 由于第十层的叶子结点就是从第九层延伸的,所以应该去掉第九层中还有子树的结点。因为第十层有188个,所以应该去掉第九层中的188/2=94个; 所以,第九层的叶子结点个数就是256-94=162,加上第十层有188个,最后结果就是350个 2完全二叉树:若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的结点(叶结点)都依次排列在该层最左边的位置上,这样的二叉树为完全二叉树。 比如图: 完全二叉树除叶结点层外的所有结点数(叶结点层以上所有结点数)为奇数,此题中,699就是奇数,叶结点层以上的所有结点数为保证就是奇数,则叶结点数必就是偶数,这样我们可以立即选出答案为B! 如果完全二叉树的叶结点都排满了,则就是满二叉树,易得满二叉树的叶结点数就是其以上所有层结点数+1比如图: 此题的其实就是一棵满二叉树,我们根据以上性质,699+1=700,700/2=350,即叶结点数为350,叶结点层以上所有结点数为350-1=349。 3完全二叉树中,只存在度为2的结点与度为0的结点,而二叉树的性质中有一条就是:n0=n2+1;n0指度为0的结点,即叶子结点,n2指度为2的结点,所以2n2+1=699 n2=349;n0=350 2.在一棵二叉树上第5层的结点数最多就是多少 一棵二叉树,如果每个结点都就是就是满的,那么会满足2^(k-1)1。 所以第5层至多有2^(5-1)=16个结点! 3、在深度为5的满二叉树中,叶子结点的个数为 答案就是16 ~ 叶子结点就就是没有后件的结点~ 说白了~ 就就是二叉树的最后一层~ 深度为K的二叉树~ 最多有2^k-1个结点~ 最多有2^(k-1)个结点~ 所以此题~ 最多有2^5-1=31个结点~ 最多有2^(5-1)=16个叶子结点~ 4、某二叉树中度为2的结点有18个,则该二叉树中有几个叶子结点? 结点的度就是指树中每个结点具有的子树个数或者说就是后继结点数。 题中的度为2就是说具有的2个子树的结点; 二叉树有个性质:二叉树上叶子结点数等于度为2的结点数加1。 5、在深度为7的满二叉树中,度为2的结点个数为多少, 就就是第一层只有一个节点,她有两个子节点,第二层有两个节点,她们也都有两个子节点以此类推,所以到第6层,就有2的5次方个节点,她们都有两个子节点 最后第7层都没有子节点了。因为就是深度为7的。 所以就就是1+2+4+8+16+32了

各类型二叉树例题说明

5.1树的概念 树的递归定义如下:(1)至少有一个结点(称为根)(2)其它是互不相交的子树 1.树的度——也即是宽度,简单地说,就是结点的分支数。以组成该树各结点中最大的度作为该树的度,如上图的树,其度为3;树中度为零的结点称为叶结点或终端结点。树中度不为零的结点称为分枝结点或非终端结点。除根结点外的分枝结点统称为内部结点。 2.树的深度——组成该树各结点的最大层次,如上图,其深度为4; 3.森林——指若干棵互不相交的树的集合,如上图,去掉根结点A,其原来的二棵子树T1、T2、T3的集合{T1,T2,T3}就为森林; 4.有序树——指树中同层结点从左到右有次序排列,它们之间的次序不能互换,这样的树称为有序树,否则称为无序树。 5.树的表示 树的表示方法有许多,常用的方法是用括号:先将根结点放入一对圆括号中,然后把它的子树由左至右的顺序放入括号中,而对子树也采用同样的方法处理;同层子树与它的根结点用圆括号括起来,同层子树之间用逗号隔开,最后用闭括号括起来。如上图可写成如下形式: (A(B(E(K,L),F),C(G),D(H(M),I,J))) 5. 2 二叉树 1.二叉树的基本形态: 二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态: (1)空二叉树——(a); (2)只有一个根结点的二叉树——(b); (3)右子树为空的二叉树——(c); (4)左子树为空的二叉树——(d); (5)完全二叉树——(e) 注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形。 2.两个重要的概念: (1)完全二叉树——只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树; (2)满二叉树——除了叶结点外每一个结点都有左右子女且叶结点都处在最底层的二叉树,。 如下图: 完全二叉树 1页

二叉树练习题及答案

一、选择题 1.关于二叉树的下列说法正确的是(B ) A.二叉树的度为2 B.二叉树的度可以小于2 C.每一个结点的度都为2 D .至少有一个结点的度为2 2.在树中,若结点A有4个兄弟,而且B是A的双亲,则B的度为(C )A.3 B.4 C.5 D .6 3.若一棵完全二叉树中某结点无左孩子,则该结点一定是(D )A.度为1的结点B.度为2的结点 C.分支结点 D .叶子结点 4.深度为k的完全二叉树至多有(C )个结点,至少有( B )个结点。 A.2k-1-1 B.2k-1 C.2k-1 D .2k 5.在具有200个结点的完全二叉树中,设根结点的层次编号为1,则层次编号为60的结点,其左孩子结点的层次编号为(C 2i ),右孩子结点的层次编号为( D 2i+1),双亲结点的层次编号为(60/2=30 A )。 A.30 B.60 C.120 D .121 6.一棵具有124个叶子结点的完全二叉树,最多有(B )个结点。 A.247 B.248 C.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+11 n=1+孩子=1+4+6+6+8+25 n0+11=25 n0=14 4.一棵具有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 。 8.高度为6的完全二叉树至少有32 个结点。

二叉树习题及答案(考试学习)

1.设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数? 1根据“二叉树的第i层至多有2^(i ? 1)个结点;深度为k的二叉树至多有2^k ? 1个结点(根结点的深度为1)”这个性质: 因为2^9-1 < 699 < 2^10-1 ,所以这个完全二叉树的深度是10,前9层是一个满二叉树, 这样的话,前九层的结点就有2^9-1=511个;而第九层的结点数是2^(9-1)=256 所以第十层的叶子结点数是699-511=188个; 现在来算第九层的叶子结点个数。 由于第十层的叶子结点是从第九层延伸的,所以应该去掉第九层中还有子树的结点。因为第十层有188个,所以应该去掉第九层中的188/2=94个; 所以,第九层的叶子结点个数是256-94=162,加上第十层有188个,最后结果是350个 2完全二叉树:若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的结点(叶结点)都依次排列在该层最左边的位置上,这样的二叉树为完全二叉树。 比如图: 完全二叉树除叶结点层外的所有结点数(叶结点层以上所有结点数)为奇数,此题中,699是奇数,叶结点层以上的所有结点数为保证是奇数,则叶结点数必是偶数,这样我们可以立即选出答案为B! 如果完全二叉树的叶结点都排满了,则是满二叉树,易得满二叉树的叶结点数是其以上所有层结点数+1比如图: 此题的其实是一棵满二叉树,我们根据以上性质,699+1=700,700/2=350,即叶结点数为350,叶结点层以上所有结点数为350-1=349。 3完全二叉树中,只存在度为2的结点和度为0的结点,而二叉树的性质中有一条是:n0=n2+1;n0指度为0的结点,即叶子结点,n2指度为2的结点,所以2n2+1=699 n2=349;n0=350 2.在一棵二叉树上第5层的结点数最多是多少 一棵二叉树,如果每个结点都是是满的,那么会满足2^(k-1)1。 所以第5层至多有2^(5-1)=16个结点! 3.在深度为5的满二叉树中,叶子结点的个数为 答案是16 ~ 叶子结点就是没有后件的结点~ 说白了~ 就是二叉树的最后一层~ 深度为K的二叉树~ 最多有2^k-1个结点~ 最多有2^(k-1)个结点~ 所以此题~ 最多有2^5-1=31个结点~ 最多有2^(5-1)=16个叶子结点~ 4.某二叉树中度为2的结点有18个,则该二叉树中有几个叶子结点? 结点的度是指树中每个结点具有的子树个数或者说是后继结点数。 题中的度为2是说具有的2个子树的结点; 二叉树有个性质:二叉树上叶子结点数等于度为2的结点数加1。 5.在深度为7的满二叉树中,度为2的结点个数为多少, 就是第一层只有一个节点,他有两个子节点,第二层有两个节点,他们也都有两个子节点以此类推,所以到第6层,就有2的5次方个节点,他们都有两个子节点

树与二叉树的练习题

习题 一、选择题 1.有一“遗传”关系:设x是y的父亲,则x可以把它的属性遗传给y。表示该遗传关系最适合的数据结构为()。 A.向量 B.树 C图 D.二叉树 2.树最合适用来表示()。 A.有序数据元素 B元素之间具有分支层次关系的数据 C无序数据元素 D.元素之间无联系的数据 3.树B的层号表示为la,2b,3d,3e,2c,对应于下面选择的()。 https://www.wendangku.net/doc/3012622337.html,(2b(3d,3e),2c) B.a(b(D,e),c) C.a(b(d,e),c) D.a(b,d(e),c) 4.高度为h的完全二叉树至少有()个结点,至多有()个结点。 A.2h_l B.h C.2h-1 D.2h 5.在一棵完全二叉树中,若编号为f的结点存在右孩子,则右子结点的编号为()。 A.2i B.2i-l C.2i+l D.2i+2 6.一棵二叉树的广义表表示为a(b(c),d(e(,g(h)),f)),则该二叉树的高度为 ()。 A.3 B.4 C.5 D.6 7.深度为5的二叉树至多有()个结点。 A.31 B.32 C.16 D.10 8.假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为()个。 A.15 B.16 C.17 D.47 9.题图6-1中,()是完全二叉树,()是满二叉树。 10.在题图6-2所示的二叉树中: (1)A结点是 A.叶结点 B根结点但不是分支结点 C根结点也是分支结点 D.分支结点但不是根结点 (2)J结点是

A.叶结点 B.根结点但不是分支结点 C根结点也是分支结点 D.分支结点但不是根结点 (3)F结点的兄弟结点是 A.E B.D C.空 D.I (4)F结点的双亲结点是 A.A B.B C.C D.D (5)树的深度为 A.1 B.2 C.3 D.4 (6)B结点的深度为 A.1 B.2 C.3 D.4 (7)A结点所在的层是 A.1 B.2 C.3 D.4 11.在一棵具有35个结点的完全二叉树中,该树的深度为()。 A.5 B.6 C.7 D.8 12.一棵有124个叶结点的完全二叉树,最多有()个结点。 A.247 B.248 C.249 D.250 13.用顺序存储的方法将完全二叉树中所有结点逐层存放在数组R[1,n]中,结 点R[i]若有左子树,则左子树是结点()。 A.R[2i+l] B.R[2i] C.R[i/2] D.R[2i-1] 14.在一非空二叉树的中序遍历序列中,根结点的右边()。 A.只有右子树上的所有结点 B.只有右子树上的部分结点 C.只有左子树上的部分结点 D.只有左子树上的所有结点 15.一棵度为m的树中,有ni个度为1的结点,有n2个度为2的结点……,有nm个度为m的结点,则该树的叶结点数为()。 A.n1+n2+...+nm B.(m-l)nm+...+n2+1 C.n1+n2+1 D.nl-n2 16.已知某二叉树的中序遍历序列是debac,后序遍历序列是dabec,它的前序遍历序列是()。 A.acbed B.decab C.deabc D.cedba 17.在一棵二叉树的二叉链表中,空指针域等于所有非空指针域数加()。 A.2 B.1 C.0 D.-1 18.线索二叉树是一种()结构。 A.逻辑 B.逻辑和存储 C.物理 D.线性 19.由权值分别是8,7,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长 度为()。 A.23 B.37 C.46 D.43 20.设T是哈夫曼树,具有5个叶结点,树T的高度最高可以是()。 A.2 B.3 C.4 D.5 二、填空题 1.对于一棵具有n个结点的树,该树中所有结点的度数之和为____。 2.在树型结构中,树根结点没有____结点,其余每个结点有且只有____个前驱 结点:叶子结点没有____结点,其余每个结点可以有____后继结点。 3.有一棵树如题图6-3所示,回答下面的问题。 这棵树的根点是____;叶子结点是____;结点k3的度是____;结点k3的

树和二叉树自测试题

第六章树一.名词解释: 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,则叶子数_____。 7、满二叉树上各层的节点数已达到了二叉树可以容纳的_最大值_____。满二叉树也是_完全 二叉树_____二叉树,但反之不然。 8、具有n个结点的完全二叉树的深度为______。 9、如果将一棵有n个结点的完全二叉树按层编号,则对任一编号为i(1<=i<=n)的结点X有: (1)若i=1,则结点X是_根_____;若i〉1,则X的双亲PARENT(X)的编号为__i/2取整____。 (2)若2i>n,则结点X无_左孩子_____且无_右孩子_____;否则,X的左孩子LCHILD(X)的编号为__2i____。 (3)若2i+1>n,则结点X无__右孩子____;否则,X的右孩子RCHILD(X)的编号为__为2i+1____。 10.二叉树通常有顺序_____存储结构和_链式_____存储结构两类存储结构。 11.每个二叉链表的访问只能从__根____结点的指针,该指针具有标识二叉链表的作用。 12.对二叉链表的访问只能从_根_____指针开始,若二叉树为空,则_root_____=NULL. 13.二叉链表中每个存储结点的每个指针域必须有一个值,这个值或者是___指向孩子的_________的指针,或者是__空指针Null____。 14.具有n个结点的二叉树中,一共有__2n______个指针域,其中只有__n-1______个用来指向结点的左右孩子,其余的____n+1____个指针域为NULL。 15.二叉树有不同的链式存储结构,其中最常用的是_二叉链表_______与__三叉链表______。16.可通过在非完全二叉树的“残缺”位置上增设“__虚结点_____”将其转化为完全二叉树。**17.以下程序段采用先根遍历方法求二叉树的叶子数,请在横线处填充适当的语句。 Void countleaf(bitreptr t,int *count)/*根指针为t,假定叶子数count的初值为0*/ {if(t!=NULL) {if((t->lchild==NULL)&&(t->rchild==NULL))___*count++_____; countleaf(t->lchild,&count);

二叉树练习题答案

一、下面是有关二叉树的叙述,请判断正误 (∨)1. 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中 只有n—1个非空指针域。 ( X )2.二叉树中每个结点的两棵子树的高度差等于1。 (∨)3.二叉树中每个结点的两棵子树是有序的。 ( X )4.二叉树中每个结点有两棵非空子树或有两棵空子树。 ( X)5.二叉树中所有结点个数是2k-1-1,其中k是树的深度。 ( X )6.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。 ( X )7.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最 多能有2i-1个结点。 (∨)8.用二叉链表法存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。 ( X )9. 具有12个结点的完全二叉树有5个度为2的结点。 二、填空 1.由3个结点所构成的二叉树有 5 种形态。 2. 一棵深度为6的满二叉树有 26-33 个分支结点和 32 个叶子。 3.一棵具有257个结点的完全二叉树,它的深度为 9 。

4. 设一棵完全二叉树具有1000个结点,则此完全二叉树有500 个叶子结点,有 499 个度为2的结点,有 1 个结点只有非空左子树,有 0 个结点只有非空右子树。(分析:完全二叉树中三种节点个数n0,n1,n2,其中 n1为0或1;n0=n2+1;总节点个数N=n0+n1+n2=n0+n1+n0-1=2*n0-1+n1.由此推 出当完全二叉树中节点个数为偶数时n1为1,否则为0,则可计算本题) 5. 二叉树的基本组成部分是:根(N)、左子树(L)和右子树(R)。因而二叉 树的遍历次序有六种。最常用的是三种:前序法(即按N L R次序),后序法(即 按 LRN 次序)和中序法(也称对称序法,即按L N R次序)。这三种方法 相互之间有关联。若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是 FEGHDCB 。 6. 用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度 是 (1+2)*3+3*2+(4+5)*2= 33 。 7.一个深度为h的二叉树最多有 2h-1 结点,最少有 h 结点。

相关文档
相关文档 最新文档