二叉树练习题及答案

合集下载

数据结构叉树习题含答案

数据结构叉树习题含答案

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

A.唯一的B.有多种C.有多种,但根结点都没有左孩子D.有多种,但根结点都没有右孩子(2)由3 个结点可以构造出多少种不同的二叉树?()A.2 B.3 C.4 D.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.m k-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.X的右子树中最左的结点C.X的左子树中最右结点 D.X的左子树中最右叶结点(13)引入二叉线索树的目的是()。

1.图中所示二叉树,求其中序序列ABCDEFGHIJ分析及参考答案b...b

1.图中所示二叉树,求其中序序列ABCDEFGHIJ分析及参考答案b...b

1. 图中所示二叉树,求其中序序列分析及参考答案::DJGBEACHFI2. 已知一棵二叉树的中序序列为CBEDAHGIJF , 先序序列为ABCDEFGHIJ ,请画出该二叉树。

分析及参考答案::3. 深度为5的二叉树至多有结点。

分析及参考答案::由公式12-k 得:31125=- 故深度为5的二叉树至多有31个结点。

4. 已知一棵二叉树的先根遍历序列为:abdefcg 中根遍历序列为:dfebagc ,画出该二叉树分析及参考答案::5. 如图所示:求树的中序遍历序列分析及参考答案::dfebagc12. 已知二叉树中的结点类型用BinTreeNode 表示,被定义为:struct BinTreeNode{char data; BinTreeNode *leftChid, *rightChild;};其中data 为结点值域,leftChild 和rightChild 分别为指向左、右子女结点的指针域,根据下面函数声明编写出求一棵二叉树高度的算法,该高度由函数返回。

假定根结点的层次为0,参数BT 初始指向这棵二叉树的根结点。

Int BtreeHeight (BinTreeNode * BT);分析及参考答案::int BtreeHeight(BinTreeNode * BT){if (BT = =NULL)return –1; //对于空树,返回-1并结束递归else{int h1=BtreeHeight(BT ->leftChild); //计算左子树的高度int h2=BtreeHeight(BT ->rightChild); //计算右子树的高度if (h1>h2)return h1+1;else return h2+1; //返回树的高度,1分}}。

二叉树的遍历题目及答案

二叉树的遍历题目及答案

二叉树的遍历题目及答案1. 二叉树的基本组成部分是:根(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的左右子树同样处理,则问题得解。

2.给定二叉树的两种遍历序列,分别是:前序遍历序列:D,A,C,E,B,H,F,G,I;中序遍历序列:D,C,B,E,H,A,G,I,F,试画出二叉树B,并简述由任意二叉树B的前序遍历序列和中序遍历序列求二叉树B的思想方法。

解:方法是:由前序先确定root,由中序可确定root的左、右子树。

然后由其左子树的元素集合和右子树的集合对应前序遍历序列中的元素集合,可继续确定root的左右孩子。

将他们分别作为新的root,不断递归,则所有元素都将被唯一确定,问题得解。

3、当一棵二叉树的前序序列和中序序列分别是HGEDBFCA和EGBDHFAC时,其后序序列必是A. BDEAGFHCB. EBDGACFHC. HGFEDCBAD. HFGDEABC答案:B4. 已知一棵二叉树的前序遍历为ABDECF,中序遍历为DBEAFC,则对该树进行后序遍历得到的序列为______。

A.DEBAFCB.DEFBCAC.DEBCFAD.DEBFCA[解析] 由二叉树前序遍历序列和中序遍历序列可以唯一确定一棵二叉树。

二叉树习题及答案

二叉树习题及答案

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=162256-94=162,加上第十层有,加上第十层有188个,最后结果是350个2完全二叉树:若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的结点下面一层的结点(叶结点)(叶结点)(叶结点)都依次排列在该层最左边的位置上,都依次排列在该层最左边的位置上,都依次排列在该层最左边的位置上,这样的二叉树为这样的二叉树为完全二叉树。

完全二叉树。

比如图:比如图:完全二叉树除叶结点层外的所有结点数(叶结点层以上所有结点数)为奇数,此题中,699是奇数,叶结点层以上的所有结点数为保证是奇数,则叶结点数必是偶数,这样我们可以立即选出答案为B !如果完全二叉树的叶结点都排满了,如果完全二叉树的叶结点都排满了,则是满二叉树,则是满二叉树,易得满二叉树的叶结点数是其以上所有层结点数+1比如图:比如图:此题的其实是一棵满二叉树,我们根据以上性质,699+1=700699+1=700,,700/2=350700/2=350,即,即叶结点数为350350,叶结点层以上所有结点数为,叶结点层以上所有结点数为350-1=349350-1=349。

数据结构树和二叉树习题(有答案)

数据结构树和二叉树习题(有答案)

E F D GAB/+ +* - C* 第六章树和二叉树一、选择题1.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-,其前缀形式为( )A .-A+B*C/DE B. -A+B*CD/E C .-+*ABC/DED. -+A*BC/DE【北京航空航天大学 1999 一、3 (2分)】2.算术表达式a+b*(c+d/e )转为后缀表达式后为()【中山大学 1999 一、5】A .ab+cde/*B .abcde/+*+C .abcde/*++ D.abcde*/++3. 设有一表示算术表达式的二叉树(见下图),它所表示的算术表达式是()【南京理工大学1999 一、20(2分)】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-G4. 设树T 的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T 中的叶子数为()A .5 B.6 C.7D .8【南京理工大学 2000 一、8 (1.5分)】5. 在下述结论中,正确的是()【南京理工大学 1999 一、4 (1分)】①只有一个结点的二叉树的度为0; ②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A .①②③ B .②③④ C.②④D .①④6. 设森林F 对应的二叉树为B ,它有m 个结点,B 的根为p,p 的右子树结点个数为n,森林F中第一棵树的结点个数是()A .m-nB .m-n-1C .n+1D .条件不足,无法确定【南京理工大学2000 一、17(1.5分)】7. 树是结点的有限集合,它((1))根结点,记为T 。

其余结点分成为m (m>0)个((2))的集合T1,T2,…,Tm ,每个集合又都是树,此时结点T 称为Ti 的父结点,Ti 称为T 的子结点(1≤i ≤m )。

数据结构(树和二叉树)练习题与答案1

数据结构(树和二叉树)练习题与答案1

1、树最适合用来表示()。

A.元素之间无联系的数据B.元素之间具有层次关系的数据C.无序数据元素D.有序数据元素正确答案:B2、现有一“遗传”关系,设x是y的父亲,则x可以把他的属性遗传给y。

表示该遗传关系最适合的数据结构为()。

A.线性表B.树C.数组D.图正确答案:B3、一棵节点个数为n、高度为h的m(m≥3)次树中,其分支数是()。

A.n+hB.h-1C.n-1D.nh正确答案:C4、若一棵3次树中有2个度为3的节点,1个度为2的节点,2个度为1的节点,该树一共有()个节点。

A.11B.5C.8D.10正确答案:A解析: A、对于该3次树,其中有n3=2,n2=1,n1=2,总分支数=总度数=n-1,总度数=1×n1+2×n2+3×n3=10,则n=总度数+1=11。

5、设树T的度为4,其中度为1、2、3、4的节点个数分别为4、2、1、1,则T中的叶子节点个数是()。

A.6B.8C.7D.5正确答案:B解析: B、这里n1=4,n2=2,n3=1,n4=1,度之和=n-1=n1+2n2+3n3+4n4=15,所以n=16,则n0=n-n1-n2-n3-n4=16-8=8。

6、有一棵三次树,其中n3=2,n2=1,n0=6,则该树的节点个数为()。

A.9B.12C.大于等于9的任意整数D.10正确答案:C解析: C、n=n0+n1+n2+n3=6+n1+1+2=9+n1。

7、假设每个节点值为单个字符,而一棵树的后根遍历序列为ABCDEFGHIJ,则其根节点值是()。

A.JB.BC.以上都不对D.A正确答案:A8、一棵度为5、节点个数为n的树采用孩子链存储结构时,其中空指针域的个数是()。

A.4nB.4n-1C.4n+1D.5n正确答案:C解析: C、总指针数=5n,非空总指针数=分支数=n-1,空指针域的个数=5n-(n-1)=4n+1。

9、有一棵三次树,其中n3=2,n2=2,n1=1,该树采用孩子兄弟链存储结构时,则总的指针域数为()。

树和二叉树习题及答案

树和二叉树习题及答案

树和二叉树习题及答案一、填空题1. 不相交的树的聚集称之为森林。

2. 从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是_树可采用孩子-兄弟链表(二叉链表)做存储结构,目的是利用二叉树的已有算法解决树的有关问题。

3. 深度为k的完全二叉树至少有2 k-1个结点。

至多有2 k-1个结点,若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是2 k-2+1。

4. 在一棵二叉树中,度为零的结点的个数为n,度为2的结点的个数为n2,则有n= 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. 带权路径长度最小的二叉树称为最优二叉树,它又被称为树。

Huffman14. 在一棵根树中,树根是为零的结点,而为零的结点是结点。

入度出度树叶15. Huffman树中,结点的带权路径长度是指由到之间的路径长度与结点权值的乘积。

结点树根16. 满二叉树是指高度为k,且有个结点的二叉树。

二叉树的每一层i上,最多有个结点。

2k-1 2i-1二、单选题1. 具有10个叶结点的二叉树中有 (B) 个度为2的结点。

(A)8 (B)9 (C)10 (D)112.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用_(3)次序的遍历实现编号。

树-二叉树习题

树-二叉树习题

一、单项选择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.关于二叉树的下列说法正确的是(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 个结点。

9.一个含有68个结点的完全二叉树,它的高度是7 。

10.已知一棵完全二叉树的第6层上有6个结点,则总的结点个数至少是37 ,其中叶子结点个数是19 。

解析:(1)5:31
6:6
(2)第5层上的叶子节点为:24-3=13
第6层上的叶子节点为:6
总的叶子节点个数为:13+6=19
11.已知完全二叉树第6层上有10个叶子结点,则这棵二叉树的结点总数最多是107 。

解析:由题意得:这棵二叉树最多有7层
在第6层满的情况下,有26-1=32,其中非叶子节点有32-10=22,而非叶子节点最多有两个孩子从而第七层上共有22*2=44个节点。

又前6层的节点数为:26-1=63
所以这棵二叉树的节点数最多为63+44=107个。

相关文档
最新文档