树和二叉树习题
第6章树和二叉树(1)

第6章树和二叉树一、选择题1. 在下述结论中,正确的是()①只有一个结点的二叉树的度为0; ②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A.①②③ B.②③④ C.②④ D.①④2.在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为()个A.4 B.5 C.6 D.73.一棵完全二叉树上有1001个结点,其中叶子结点的个数是()A. 250 B. 500 C.254 D.505 E.以上答案都不对4. 一个具有1025个结点的二叉树的高h为()A.11 B.10 C.11至1025之间 D.10至1024之间5.若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用( )遍历方法最合适。
A.前序 B.中序 C.后序 D.按层次6.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为()。
A.CBEFDA B. FEDCBA C. CBEDFA D.不定7.一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足()A.所有的结点均无左孩子B.所有的结点均无右孩子C.只有一个叶子结点D.是任意一棵二叉树8.在二叉树结点的先序序列,中序序列和后序序列中,所有叶子结点的先后顺序()A.都不相同B.完全相同 C.先序和中序相同,而与后序不同D.中序和后序相同,而与先序不同二、判断题1. 二叉树是度为2的有序树。
2. 完全二叉树一定存在度为1的结点。
3.用树的前序遍历和中序遍历可以导出树的后序遍历。
4.由一棵二叉树的前序序列和后序序列可以唯一确定它。
5.完全二叉树中,若一个结点没有左孩子,则它必是树叶。
三、填空题1.在二叉树中,指针p所指结点为叶子结点的条件是___ ___。
15.设只含根结点的二叉树的高度为0,则高度为k的二叉树的最大结点数为__ ____,最小结点数为___ ___。
数据结构(树和二叉树)练习题与答案2

1、一颗二叉树的括号表示为“1(2(4,5(6,7)),3)”)。
设N代表二叉树的根,L代表根节点的左子树,R代表根节点的右子树。
若遍历后的节点序列为3,1,7,5,6,2,4,则其遍历方式是()。
A.NRLB.RLNC.LRND.RNL正确答案:D2、若二叉树(每个节点值为单个字符)的中序遍历序列是abcdef,且c为根节点,则()。
A.二叉树有两个度为0的节点B.二叉树的高度为5C.节点c有两个孩子D.以上都不对正确答案:C解析: C、从中序序列看出,节点c的左右子树均不空。
3、若知道一棵二叉树的(),便可以唯一确定该二叉树。
A.中序序列B.先序和后序序列C.中序和后序序列D.先序序列正确答案:C4、一棵二叉树的先序遍历序列为ABCDEFG,它的中序遍历序列可能是()。
A.ADCFEGB.ABCDEFGC.DACEFBGD.CABDEFG正确答案:B解析: B、当一棵二叉树所有节点的左子树为空时,先序遍历序列和中序遍历序列相同。
先序序列和中序序列可以确定一棵二叉树,这里由选项A、C和D的中序序列无法确定一棵二叉树。
5、一棵二叉树的先序遍历序列为ABCDEF,中序遍历序列为CBAEDF,则后序遍历序列为()A.FEDCBAB.CBEFDAC.CBEDFAD.不确定正确答案:B6、某棵二叉树中,X节点有左孩子Y节点,则在其先序遍历中()。
A.访问Y节点后,接着遍历Y节点的左子树,然后访问X节点B.访问X节点后,接着遍历Y节点的左子树,然后访问Y节点C.访问Y节点后立即访问X节点D.访问X节点后立即访问Y节点正确答案:D解析: D、其先序遍历序列为…XY…。
7、关于二叉树(含2个以上的节点)的先序遍历序列中,以下正确的是()。
A.先序遍历序列的最后一个节点是根节点B.先序遍历序列的最后一个节点一定是叶子节点C.以上都不对D.先序遍历序列的第一个节点一定是叶子节点正确答案:B解析: B、先序遍历过程是:NLR,最后访问的节点的L、R均为空,所以为叶子节点。
树和二叉树习题答案

第六章 练习1、试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。
态。
解:(1)3个结点的树:(2)3个结点的二叉树:2、已知一棵度为m 的树中有个度为1的结点,个度为2 结点,…,个度为m 的结点,问该树中有多少个叶子结点?解:由树的特征可知,除顶点外每个结点对应于一条边,总边数等于各顶点度数之和,所以有:所以:3、对第1题所得的各种形态的二叉树,分别写出前序、中序和后序遍历的序列。
解:(1) 前:ABC 中:BAC 后:BCA (2) 前:ABC 中:CBA 后:CBA (3) 前:ABC 中:BCA 后:CBA (4) 前:ABC 中:ABC 后:CBA (5) 前:ABC 中:ACB 后:CBA4、试以二叉链表作为存储结构,编写算法将二叉树中所有结点的左、右子树相互交换。
ABCA B CAB CA B C ACB A B CACBvoid Bitree_Revolute(Bitree T)//交换所有结点的左右子树 {T->lchild<->T->rchild; //交换左右子树 if(T->lchild) Bitree_Revolute(T->lchild);if(T->rchild) Bitree_Revolute(T->rchild); //左右子树再分别交换各自的左右子树}//Bitree_Revolute5、画出和下面树对应的二叉树:A BCDEFGHIJK6、画出和下面二叉树对应的森林:7、写出判断给定的二叉树是否是完全二叉树的算法。
int IsFull_Bitree(Bitree T)//判断二叉树是否完全二叉树,是则返回1,否则返回0{InitQueue(Q);flag=0;EnQueue(Q,T); //建立工作队列while(!QueueEmpty(Q)){DeQueue(Q,p);if(!p) flag=1;else if(flag) return 0;else{EnQueue(Q,p->lchild);EnQueue(Q,p->rchild); //不管孩子是否为空,都入队列}}//whilereturn 1;}//IsFull_Bitree分析:该问题可以通过层序遍历的方法来解决.不管当前结点是否有左右孩子,都入队列.这样当树为完全二叉树时,遍历时得到是一个连续的不包含空指针的序列.反之,则序列中会含有空指针.8、根据栈的存储结构写出二叉树的非递归形式的先序遍历算法。
数据结构树和二叉树习题(有答案)

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、树最适合用来表示()。
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)次序的遍历实现编号。
第5章树和二叉树习题答案

第5章树和⼆叉树习题答案第6章树和⼆叉树⼀.选择题(1)由3 个结点可以构造出多少种不同的⼆叉树?( D )A.2 B.3 C.4 D.5(2)⼀棵完全⼆叉树上有1001个结点,其中叶⼦结点的个数是(D )。
A.250 B. 500 C.254 D.501(3)⼀个具有1025个结点的⼆叉树的⾼h为( C )。
A.11 B.10 C.11⾄1025之间 D.10⾄1024之间(4)深度为h的满m叉树的第k层有( A )个结点。
(1=A.mk-1 B.mk-1 C.mh-1 D.mh-1(5)对⼆叉树的结点从1开始进⾏连续编号,要求每个结点的编号⼤于其左、右孩⼦的编号,同⼀结点的左右孩⼦中,其左孩⼦的编号⼩于其右孩⼦的编号,可采⽤( C )遍历实现编号。
A.先序 B. 中序 C. 后序 D. 从根开始按层次遍历(6)若⼆叉树采⽤⼆叉链表存储结构,要交换其所有分⽀结点左、右⼦树的位置,利⽤( D )遍历⽅法最合适。
A.前序 B.中序 C.后序 D.按层次(7)⼀棵⾮空的⼆叉树的先序遍历序列与后序遍历序列正好相反,则该⼆叉树⼀定满⾜( B )。
A.所有的结点均⽆左孩⼦ B.所有的结点均⽆右孩⼦C.只有⼀个叶⼦结点 D.是任意⼀棵⼆叉树(8)某⼆叉树的前序序列和后序序列正好相反,则该⼆叉树⼀定是( C )的⼆叉树。
A.空或只有⼀个结点 B.任⼀结点⽆左⼦树C.⾼度等于其结点数 D.任⼀结点⽆右⼦树(9)若X是⼆叉中序线索树中⼀个有左孩⼦的结点,且X不为根,则X的前驱为( C )。
A.X的双亲 B.X的右⼦树中最左的结点C.X的左⼦树中最右结点 D.X的左⼦树中最右叶结点(10)引⼊⼆叉线索树的⽬的是( A )。
A.加快查找结点的前驱或后继的速度 B.为了能在⼆叉树中⽅便的进⾏插⼊与删除C.为了能⽅便的找到双亲 D.使⼆叉树的遍历结果唯⼀⼆.简答题(1)试找出满⾜下列条件的⼆叉树①先序序列与后序序列相同②中序序列与后序序列相同③先序序列与中序序列相同④中序序列与层次遍历序列相同答:(1)若先序序列与后序序列相同,则或为空树,或为只有根结点的⼆叉树(2)若中序序列与后序序列相同,则或为空树,或为任⼀结点⾄多只有左⼦树的⼆叉树.(3)若先序序列与中序序列相同,则或为空树,或为任⼀结点⾄多只有右⼦树的⼆叉树.(4)若中序序列与层次遍历序列相同,则或为空树,或为任⼀结点⾄多只有右⼦树的⼆叉树2. 试写出如图所⽰的⼆叉树分别按先序、中序、后序遍历时得到的结点序列。
数据结构习题

树和二叉树习题(39)1.请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink-rlink 法存储。
2.假设K1,…,Kn 是n 个关键词,试解答:(1) 试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为K1,K2,…,Kn 时,用算法建立一棵以LLINK / RLINK 链接表示的二叉查找树。
(2) 设计一个算法,打印出该二叉查找树的嵌套括号表示结构。
例如,K1=B,K2=A,K3=D,K4=C,K5=E,则用二叉查找树的插入算法建立的二叉查找树为:该二叉查找树的嵌套括号表示结构为:B(A,D(C,E))3.写出在二叉排序树中删除一个结点的算法,使删除后仍为二叉排序树。
设删除结点由指针p 所指,其双亲结点由指针 f 所指,并假设被删除结点是其双亲结点的右孩子。
用类PASCAL(或C)语言将上述算法写为过程形式。
4. 已知二叉树排序树中某结点指针p,其双亲结点指针为fp,p 为fp 的左孩子,试编写算法,删除p 所指结点。
5.二叉排序树采用二叉链表存储。
写一个算法,删除结点值是X 的结点。
要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注:可不考虑被删除的结点是根的情况)。
6. 设记录R1,R2,…,Rn 按关键字值从小到大顺序存储在数组r[1..n]中,在r[n+1]处设立一个监督哨,其关键字值为+∞; 试写一查找给定关键字k 的算法;并画出此查找过程的判定树,求出在等概率情况下查找成功时的平均查找长度。
7.设计算法以求解编号为i和j的两个结点的最近的公共祖先结点的编号。
8.元素集合已存入整型数组A[1..n]中,试写出依次取A 中各值A[i](1<=i<=n)构造一棵二叉排序树T 的非递归算法:CSBT(T,A)9.写出折半查找的算法,并要求它返回整型值i,当查找成功时,返回查找位置,查找不成功时返回0。
10.请编写算法:键树,又称数字查找树。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.若在一棵非空树中,某结点A有3个兄弟结点(包括A自身),B是A的双亲结点,则B
的度是()。
A. 2
B. 3
C. 4
D. 5
2.有关二叉树下列说法正确的是()
A.二叉树的度为2
B.一棵二叉树的度可以小于2
C.二叉树中至少有一个结点的度为2
D.二叉树中任何一个结点的度都为2
3.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的
编号为1,则编号为49的结点的左孩子的编号为()。
A.98
B.99
C.50
D.48
4.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结
点至少为()。
A.h
B.2h-1
C.2h+1
D.h+1
5.假定在一棵二叉树中,双分支结点数为15个,单分支结点数为32个,则叶子结点数
为。
A. 15
B. 16
C. 17
D. 47
6.假定一棵二叉树的结点数为18个,则它的最小高度。
A. 4
B. 5
C. 6
D. 18
7.在一棵二叉树中第五层上的结点数最多为。
A. 8
B. 15
C. 16
D. 32
8.在一棵具有五层的满二叉树中,结点总数为。
A. 31
B. 32
C. 33
D. 16
9.一个有31个结点的满二叉树,其深度有()。
A.5层
B. 6层
C. 7层
D.8层
10.一个具有767个结点的完全二叉树,其叶子结点个数为()。
A. 383
B. 384
C. 385
D. 386
11.设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 。
则T中的叶
子数为()。
A.5 B.6 C.7 D.8
12.某二叉树中序序列为abcdefg,后序序列为bdcafge,则前序序列是()。
A. egfacdb
B. eacbdgf
C. eagcfbd
D.上面的都不对
13.设A、B为一棵二叉树上的两个结点。
在中序遍历时,A在B前面的条件是()。
A. A在B的右方
B. A在B的左方
C. A是B的祖先
D. A是B的子孙
14.在N个结点的线索二叉树中,线索的数目为()
A.N-1
B.N
C.N+1
D.2N
15.引入二叉线索树的目的是()
A.加快查找结点的前驱或后继的速度
B.为了能在二叉树中方便的进行插入与删除
C.为了能方便的找到双亲
D.使二叉树的遍历结果惟一
16.设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林
F中第一棵树的结点个数是()
A.m-n B.m-n-1 C.n+1 D.条件不足,无法确定
17.在有n个叶子结点的哈夫曼树中,其分支结点(非叶子结点)的总数为( )。
A.不确定 B. 2n-1 C. n-1 D. 2n
18.在一非空二叉树的中序遍历序列中,根结点的右边()
A.只有右子树上的所有结点
B.只有右子树上的部分结点
C.只有左子树上的部分结点
D.只有左子树上的所有结点
19.以下说法错误的是()。
A. 哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近。
B. 若一个二叉树的树叶是某子树中序遍历序列中的第一个结点,则它必是该子树后序
遍历序列中的第一个结点
C. 二叉树的前序遍历和后序遍历并不能唯一地确定这棵树,因为不能确定树的根结点
D. 在前序遍历二叉树的结点序列中,任一结点其子树的结点都直接跟在该结点之后
20.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为
()。
A. 24
B. 48
C. 72
D. 53
21.下面关于哈夫曼树的说法,不正确的是()。
A.对应一组权值构造出的哈夫曼树一般不是唯一的
B.哈夫曼树具有最小的带权路径长度
C.哈夫曼树中没有度为1 的结点
D.哈夫曼树中除了度为1的结点外,还有度为2 的结点和叶结点
22.已知二叉树中叶子数为50,有一个孩子的结点数为30,则总结点数为( 129 )。
23.在一棵完全二叉树中,按结点的次序编号,结点8是最左边的叶子结点,其祖先为
( 4 )。
24.一个二叉树的第6层上最多有(32 )个结点。
25.已知某完全二叉树有50个叶子结点,则该完全二叉树的总结点数至少是(99 ),至
多是(100)
26.在含100个结点的完全二叉树,叶子结点的个数为(50 )。
27.深度为k 的完全二叉树至少有( 2k-1 )个结点,至多有(2^k-1 )个结
点。
28.完全二叉树含有121个结点,则该树的深度为( 7 )。
29.设有13个值,用它们组成一个哈夫曼树,则该哈夫曼树共有()个结点。
30.二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历: HFIEJKG 。
该
二叉树根的右子树的根是:()。
31.对于一个具有n 个结点的二元树,当它为一棵()二元树时具有最小高度,当它
为一棵()时,具有最大高度。
32.线索二叉树的左线索指向其(),右线索指向其()。
33.给定一组数据{6,2,7,10,3,12}以它构造一棵哈夫曼树,则树高为(),带权路
径长度WPL的值为()。
34.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3,则与森
林F对应的二叉树根结点的右子树上的结点个数是()。
35.若在内存中存放一个完全二叉树,在二叉树上只进行下面两个操作:
(1)寻找某个结点双亲;(2)寻找某个结点的子女;
请问应该用何种结构来存储该二叉树?
36.证明:一个满k叉树上的叶子结点数n0和非叶子结点数n1之间满足以下关系:n0=
(k-1)*n1+1
37.试找出满足下列条件的二叉树:
(1)先序序列与后序序列相同;(2)中序序列与后序序列相同;
(3)先序序列与中序序列相同;(4)中序序列与层次序列相同;
38.什么是哈夫曼(Huffman)树?有一组数值14、21、32、15、28,画出哈夫曼树,并计
算其WPL。
39.设一棵二叉树的前序序列是ABCDEFGHIJ和中序序列是DBGEHJACIF,
(1)画出这棵二叉树。
(2)画出这棵二叉树的后序线索树。
(3)将这棵二叉树转换成对应的树(或森林)。
40.将下列由三棵树组成的森林转换为二叉树,给出转换后的二叉树进行先序、中序、后序
遍历序列。