第6章树和二叉树作业

合集下载

数据结构-习题-第六章-树

数据结构-习题-第六章-树

数据结构-习题-第六章-树和二叉树E F D G A B / + + * - C * 第六章 树和二叉树一、选择题1.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-,其前缀形式为( )A .-A+B*C/DE B. -A+B*CD/EC .-+*ABC/DE D. -+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 .5B .6C .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-n B.m-n-1 C.n+1 D.条件不足,无法确定【南京理工大学2000 一、17(1.5分)】7. 树是结点的有限集合,它( (1))根结点,记为T。

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

第六章 树和二叉树 作业

第六章 树和二叉树 作业

以数据集{2 以数据集{2,5,7,9,13}为权值构造一棵 {2, 13}为权值构造一棵 huffman树 并计算其带权路径长度。 huffman树,并计算其带权路径长度。
2 5 7 9 36 14 22 13
7
7
9
13
2
5
WPL=(2+5)*3+(7+9+13)*2=79
t)
//释放左子树 //释放左子树 //释放右子树 //释放右子树 //释放根节点 //释放根节点
已知一棵二叉树的中序序列为cbedahgijf, 已知一棵二叉树的中序序列为cbedahgijf,后序 序列为cedbhjigfa, 序列为cedbhjigfa,画出该二叉树的先序线索二 叉树。 叉树。 a 中序:c 中序:c b e d a h g i j f 后序:c 后序:c e d b h j i g f a 先序:abcdefghij 先序:abcdefghij
编写一个将二叉树中每个结点的左右孩子交换的算法 分析:采用递归的方式求解。当二叉树的左右孩子之一 分析:采用递归的方式求解。 不空时,将左右孩子交换, 不空时,将左右孩子交换,然后再分别递归处理左右 子树。 子树。
void exchange( BiTree &t) { BiTree m ; if ( !t->lchild||!t->rchild) !t->lchild||!t{ m=tm=t->lchild ; t->lchild =t->rchild; t=tt->rchild=m; exchange(texchange(t->lchild) ; exchange(texchange(t->rchild) ; } }

第6章 树和二叉树 作业

第6章 树和二叉树 作业

第6章树和二叉树作业1、假设在树中,结点x是结点y的双亲时,用(x,y)来表示树边。

已知一棵树的树边集合为{ (e,i), (b,e), (b,d), (a,b), (g,j), (c,g), (c,f), (h,l), (c,h), (a,c) } ,用树型表示法表示该树,并回答下列问题:①哪个是根结点? 哪些是叶子结点? 哪个是g的双亲? 哪些是g的祖先? 哪些是g的孩子? 那些是e的子孙? 哪些是e的兄弟? 哪些是f 的兄弟?②b和n的层次各是多少? 树的深度是多少? 以结点c为根的子树的深度是多少?2、一棵深度为h的满k叉树有如下性质:第h层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树。

如果按层次顺序(同层自左至右)从1开始对全部结点编号,问:①各层的结点数是多少?②编号为i的结点的双亲结点(若存在)的编号是多少?③编号为i的结点的第j个孩子结点(若存在)的编号是多少?④编号为i的结点的有右兄弟的条件是什么? 其右兄弟的编号是多少?3、设有如图6-27所示的二叉树。

①分别用顺序存储方法和链接存储方法画出该二叉树的存储结构。

②写出该二叉树的先序、中序、后序遍历序列。

4、已知一棵二叉树的先序遍历序列和中序遍历序列分别为ABDGHCEFI和GDHBAECIF,请画出这棵二叉树,然后给出该树的后序遍历序列。

5、设一棵二叉树的中序遍历序列和后序遍历序列分别为BDCEAFHG 和DECBHGFA ,请画出这棵二叉树,然后给出该树的先序序列。

6、已知一棵二叉树的中序遍历序列和后序遍历序列分别为dgbaekchif 和gdbkeihfca,请画出这棵二叉树对应的中序线索树和后序线索树。

7、以二叉链表为存储结构,请分别写出求二叉树的结点总数及叶子结点总数的算法。

8、设图6-27所示的二叉树是森林F所对应的二叉树,请画出森林F。

9、设有一棵树,如图6-28所示。

①请分别用双亲表示法、孩子表示法、孩子兄弟表示法给出该树的存储结构。

数据结构习题第6章

数据结构习题第6章

第6章树和二叉树一、选择题1.不含任何结点的空树()。

A. 是一棵树B. 是一棵二叉树C. 是一棵树也是一棵二叉树;D. 既不是树也不是二叉树2. 一棵有n个结点的树的所有结点的度数之和为()。

A. n-1B. nC. n+1D. 2n3. 在二叉树中某一个结点的深度为3,高度为4,则该树的高度是()。

A. 5B. 6C. 7D. 84. 设高度为h的二叉树中只有度为0和度为2的结点,则该树的结点数至多为()。

A. 2h-1B. 2h+1C. 2h-1D. 2h+15. 设高度为h的二叉树中只有度为0和度为2的结点,则该树的结点数至少为()。

A. 2h-1B. 2h+1C. 2h-1D. 2h+16. 高度为h的满二叉树中有n个结点,其中有m个叶结点,则正确的等式是()。

A. h+m=nB. h+m=2nC. m=h-1D. n=2h-17.二叉树是非线性数据结构,所以()。

A. 它不能用顺序存储结构存储B. 它不能用链式存储结构存储C. 顺序存储结构和链式存储结构都能存储D. 顺序存储结构和链式存储结构都不能使用8. 一棵完全二叉树有25个叶结点,则该树最少有()个结点。

A. 48B. 49C. 50D. 519. 假设一个三叉树的结点数为36,则该树的最小高度为()。

A. 2B. 3C. 4D. 510. 设二叉树有n个结点,则二叉链表中非空指针数为()。

A. n-1B. nC. n+1D. 2n11. 先序序列和中序序列正好相反的二叉树是()。

A. 完全二叉树B. 满二叉树C. 左单枝树D. 右单枝树12. 后序序列和中序序列正好相反的二叉树是()。

A. 完全二叉树B. 满二叉树C. 左单枝树D. 右单枝树13.把一棵树转换为二叉树后,这棵二叉树的形态是()。

A. 唯一的B. 有多种C. 有多种,但根结点都没有左孩子D. 有多种,但根结点都没有右孩子14. 将一棵树T转换为孩子—兄弟链表表示的二叉树H,则T的后根序遍历是H 的()。

第6章树和二叉树习题

第6章树和二叉树习题

第六章 树和二叉树一、选择题1.算术表达式a+b*(c+d/e )转为后缀表达式后为( B )A .ab+cde/*B .abcde/+*+C .abcde/*++ 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-G3. 设树T 的度为4,其中度为1,2,3和4的结点个数别离为4,2,1,1 则T 中的叶子数为( D )A .5B .6C .7D .84. 在下述结论中,正确的是( D )①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意互换;④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A .①②③B .②③④C .②④D .①④5. 设丛林F 对应的二叉树为B ,它有m 个结点,B 的根为p,p 的右子树结点个数为n,丛林F 中第一棵树的结点个数是( A )A .m-nB .m-n-1C .n+1D .条件不足,无法确信6.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( B )A .9B .11C .15D .不确信7.设丛林F 中有三棵树,第一,第二,第三棵树的结点个数别离为M1,M2和M3。

与丛林F 对应的二叉树根结点的右子树上的结点个数是( D )。

A .M1B .M1+M2C .M3D .M2+M38.一棵完全二叉树上有1001个结点,其中叶子结点的个数是( E )A.250 B.500 C.254 D.505 E.以上答案都不对9. 有关二叉树下列说法正确的是( B )A.二叉树的度为2 B.一棵二叉树的度能够小于2C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为210.二叉树的第I层上最多含有结点数为(C )A.2I B.2I-1-1 C.2I-1D.2I -111. 一个具有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+113. 一棵树高为K的完全二叉树至少有( C )个结点A.2k–1 B. 2k-1–1 C. 2k-1 D. 2k14.对二叉树的结点从1开始进行持续编号,要求每一个结点的编号大于其左、右小孩的编号,同一结点的左右小孩中,其左小孩的编号小于其右小孩的编号,可采纳( C )顺序的遍历实现编号。

第6章树和二叉树作业answer

第6章树和二叉树作业answer
>lchild)+CountLeaf2(bt->rchild)); }
A
3)重建二叉树 E
B C
F
G
H
J
D I
作业:2
1)转化的二叉树 如图
NULL
1
3 2
4
9 10 5
NULL
11 12
6
8
7
13
15
14
二叉树中序遍历序列:3 4 2 8 6 7 5 1 10 9 11 15 13 14 12
2 试找出分别满足下面条件的所有二叉树: (1)前序序列和中序序列相同; (2)中序序列和后序序列相同; (3)前序序列和后序序列相同; (4)前序、中序、后序序列均相同
^M^
^I
^J ^
遍历序列 先序:ABEKLFCGDHMIJ 中序 KLEFBGCMHIJDA 后序 LKFEGMJIHDCBA
2.统计出给定二叉树中叶子结点的数目 (1)顺序存储结构的实现 int CountLeaf1(SqBiTree bt,int k) {/*一维数组bt[2k-1]为二叉树存储结构,k为二叉树深度,函数值为叶子数。*/ total=0; for(i=1;i<=2k-1;i++) { if (bt[i]!=0) { if ((bt[2i]==0 && bt[2i+1]==0) || (i>(2k-1)/2)) total++; } } return(total);
第6章 树和二叉树
作业解答
作业1
E
K
F
L
A 1 如图所示的二叉树
的(a)画出其顺序存储和二叉链表
存储。(b)列出该二叉树的叶子

树和二叉树(习题及作业)

树和二叉树(习题及作业)

• 3下列各项叙述中,正确的是 。 • A) 二叉树中每个结点有两个子结点,而对 一般的树则无此限制 • B) 用树的前序遍历和中序遍历可以推导出 树的后续遍历 • C) 在二叉树中插入结点,该二叉树便不再 是二叉树 • D) 用一维数组存储二叉树,总是以前序遍 历顺序存储结点
• • • • •
第6章 树和二叉树
• 1.如果二叉树中任何一个结点的值都小于它 的左子树上所有结点的值,且大于右子树 上所有结点的值,要得到个结点值的递增 序列,应按下列 次序排列结点。 • A) 先根 • B) 中根 • C) 后根 • D) 层次
• 2.设森林F中有3棵树。第一、第二和第三棵 树的结点个数分别是m1,m2和m3,则与森 林F对应的二叉树根结点的右子树上的结点 个数是 。 • A) m3 • B) m2 + m3 • C) m1 •B) 孩子链表表示法 C) 孩子兄弟表示法 D) 顺序存储表示法
不是树的存储形式。
• 假设用于通信的电文由字符集{a,b,c,d,e,f,g} 中的字母构成。它们在电文中出现的频度 分别为{0.31,0.16,0.10,0.08,0.11,,0.20,0.04}, • 为这7个字母设计哈夫曼编码; • 计算其带权路径长度

数据结构 第六章 树和二叉树作业及答案

数据结构 第六章 树和二叉树作业及答案

第六章树和二叉树作业一、选择题(每题2分,共24分)。

1. 一棵二叉树的顺序存储情况如下:树中,度为2的结点数为( C )。

A.1 B.2 C.3 D.42. 一棵“完全二叉树”结点数为25,高度为(B )。

A.4 B.5 C.6 D.不确定3.下列说法中,(B )是正确的。

A. 二叉树就是度为2的树B. 二叉树中不存在度大于2的结点C. 二叉树是有序树D. 二叉树中每个结点的度均为24.一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是(B )。

A. CABDEFGB. BCDAEFGC. DACEFBGD. ADBCFEG5.线索二叉树中的线索指的是(C )。

A.左孩子 B.遍历 C.指针 D.标志6. 建立线索二叉树的目的是(A )。

A. 方便查找某结点的前驱或后继B. 方便二叉树的插入与删除C. 方便查找某结点的双亲D. 使二叉树的遍历结果唯一7. 有 D )示意。

A.B.C.D.8. 一颗有2046个结点的完全二叉树的第10层上共有(B )个结点。

A. 511B. 512C. 1023D. 10249. 一棵完全二叉树一定是一棵(A )。

A. 平衡二叉树B. 二叉排序树C. 堆D. 哈夫曼树10.某二叉树的中序遍历序列和后序遍历序列正好相反,则该二叉树一定是( C )的二叉树。

A .空或只有一个结点B .高度等于其结点数C .任一结点无左孩子D .任一结点无右孩子11.一棵二叉树的顺序存储情况如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15A B C D E 0 F 0 0 G H 0 0 0 X结点D 的左孩子结点为( D )。

A .EB .C C .FD .没有12.一棵“完全二叉树”结点数为25,高度为( B )。

A .4B .5C .6D .不确定二、填空题(每空3分,共18分)。

1. 树的路径长度:是从树根到每个结点的路径长度之和。

对结点数相同的树来说,路径长度最短的是 完全 二叉树。

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

第六章树和二叉树 1
一、选择题
1. 已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为()
A.-A+B*C/DE B.-A+B*CD/E
C.-+*ABC/DE D.-+A*BC/DE
2. 在下述结论中,正确的是()
①只有一个结点的二叉树的度为0;
②二叉树的度为2;
③二叉树的左右子树可任意交换;
④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A.①②③B.②③④C.②④D.①④
3. 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为()
A.5 B.6 C.7 D.8
4. 设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是()
A.m-n B.m-n-1 C.n+1 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.有关二叉树下列说法正确的是()
A.二叉树的度为2 B.一棵二叉树的度可以小于2
C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2
8. 一棵完全二叉树上有1001个结点,其中叶子结点的个数是()。

A.250 B.500 C.254 D.505 E.以上答案都不对
9. 具有10个叶结点的二叉树中有()个度为2的结点。

A.8 B.9 C.10 D.ll
10. 深度为h的满m叉树的第k层有()个结点。

(1=<k=<h)
A.m k−1B.m k-1 C.mℎ−1D.mℎ-1
11. 设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是()
A、空或只有一个结点
B、完全二叉树
C、二叉排序树
D、高度等于其结点数
12. 已知一棵有2011个结点的树,其叶结点个数为116,该树对应的二叉树无右孩子的结点个数为()
A.115 B.116 C.1895 D.l896
二、判断题
1. 二叉树是度为2的有序树。

2.完全二叉树一定存在度为1的结点。

3.深度为K的二叉树中结点总数≤2k-1。

4. 二叉树以后序遍历序列与前序遍历序列反映的同样的信息。

5. 二叉树的遍历结果不是唯一的。

6. 若一个树叶是某二叉树子树的前序遍历序列中的最后一个结点,则它必定是该子树的前序中历序列中的最后一个结点
7. 已知一棵二叉树的后序和前序序列,可以唯一确定这个二叉树
三、填空题
1.二叉树由______________,_____________,_____________三个基本单元组成。

2.在二叉树中,指针p所指结点为叶子结点的条件是__________________。

3. 二叉树中某一结点左子树的深度减去右子树的深度称为该结点的_____________。

4. 深度为k的完全二叉树至少有_____________个结点,至多有_____________个结点。

5. 在顺序存储的二叉树中,编号为i和j的两个结点处在同一层的条件是_____________。

6. 设高度为h 的二叉树上只有度为0 和度为2 的节点,问该二叉树的节点数可能的最大值为_____________,最小值为_____________。

7. 一棵共有n个结点的树,其中所有分支结点的度均为K,则该树中叶子结点的个数为_____________。

8.一棵完全二叉树有200 个结点,则度为1 的结点有_____________个。

度为0
的结点有_____________个。

度为2 的结点有_____________个。

四、应用题
1. 任意一个有n个结点的二叉树,已知它有m个叶子结点,试证明非叶子结点有(m-1)个度为2,其余度为1。

2. 已知A[1..N]是一棵顺序存储的完全二叉树,如何求出A[i]和A[j]的最近的共同祖先?
3. 试证明:同一棵二叉树的所有叶子结点,在前序序列、中序序列以及后序序列中都按相同的相对位置出现(即先后顺序相同),例如前序abc,后序bca,对称序bac。

4. 由二叉树的中序序列及前序序列能唯一的建立二叉树,试问中序序列及后序序列是否也能唯一的建立二叉树,不能则说明理由,若能对中序序列DBEAFGC 和后序序列DEBGFCA构造二叉树。

五、算法设计题
1. 二叉树采用二叉链表存储:
(1)写一个建立二叉树的算法。

(2)编写计算整个二叉树高度的算法(二叉树的高度也叫二叉树的深度)。

(3)编写计算二叉树最大宽度的算法(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。

(4)写一个判别给定的二叉树是否是完全二叉树的算法。

完全二叉树定义为:深度为K,具有N个结点的二叉树的每个结点都与深度为K 的满二叉树中编号从1至N的结点一一对应。

此题以此定义为准。

2. 在二叉树中查找值为x的结点,试编写算法(用C语言)打印值为x的结点的所有祖先,假设值为x的结点不多于一个,最后试分析该算法的时间复杂度。

相关文档
最新文档