树和二叉树作业(一)
作业:第五章 树和二叉树
第五章树和二叉树一、单项选择题1.关于二叉树的下列说法正确的是 (1)。
A.二叉树的度为2 B.二叉树的度可以小于2C.每一个结点的度都为2 D.至少有一个结点的度为2.设深度为h(h>0)的二叉树中只有度为0和度为2的结点,则此二叉树中所含的结点总数至少为(2)。
A.2h B.2h-1 C.2h+1 D.h+13.在树中,若结点A有4个兄弟,而且B是A的双亲,则B的度为 (3) 。
A.3 B.4 C.5 D.64.若一棵完全二叉树中某结点无左孩子,则该结点一定是 (4) 。
A.度为1的结点 B.度为2的结点 C.分支结点 D.叶子结点5.深度为k的完全二叉树至多有 (5) 个结点,至少有 (6) 个结点。
A.2k-1-1 B.2k-1 C.2k-1 D.2k6.前序序列为ABC的不同二叉树有 (7) 种不同形态。
A.3 B.4 C.5 D.67.若二叉树的前序序列为DABCEFG,中序序列为BACDFGE,则其后序序列为 (8) ,层次序列为 (9) 。
A.BCAGFED B.DAEBCFG C.ABCDEFG D.BCAEFGD8.在具有200个结点的完全二叉树中,设根结点的层次编号为1,则层次编号为60的结点,其左孩子结点的层次编号为 (10) ,右孩子结点的层次编号为 (11) ,双亲结点的层次编号为 (12)。
A.30 B.60 C.120 D.1219.遍历一棵具有n个结点的二叉树,在前序序列、中序序列和后序序列中所有叶子结点的相对次序 (13) 。
A.都不相同 B.完全相同 C.前序和中序相同 D.中序与后序相同10.在由4棵树组成的森林中,第一、第二、第三和第四棵树组成的结点个数分别为30,10,20,5,当把森林转换成二叉树后,对应的二叉树中根结点的左子树中结点个数为(14),根结点的右子树中结点个数为 (15) 。
A.20 B.29 C.30 D.3511.具有n个结点(n>1)的二叉树的前序序列和后序序列正好相反,则该二叉树中除叶子结点外每个结点 (16) 。
数据结构树和二叉树习题
数据结构树和二叉树习题一、树的基本概念1.请简要描述树的基本概念及其特点。
答:树是由n(n≥0)个节点组成的有限集合。
其中:-若n=0,则为空树。
-若n>0,则树有且仅有一个称为根的节点,其他节点可以分为多个互不相交的有限集合,每个集合本身又是一棵树,称之为根的子树。
树的特点包括:-每个节点存放的数据可以是同种或不同种的数据类型。
-每个节点最多有一个父节点和多个子节点。
2.请列举树的应用场景。
答:树的应用场景包括但不限于以下几个方面:-文件系统:操作系统中的文件系统通常使用树来组织文件和目录。
-数据库:数据库中的索引通常使用树来存储和组织数据。
-编译原理:编译器使用语法树来解析源代码。
-社交网络:社交网络中的关注和粉丝关系可以表示为树。
二、二叉树3.请定义二叉树。
答:二叉树是一种特殊的树结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。
4.请画出以下二叉树的结构图:A/\BC/\/\DEFG答:以下是该二叉树的结构图:A/\BC/\/\DEFG5.请写出以下二叉树的前序遍历、中序遍历和后序遍历结果:/\23/\45答:-前序遍历结果:1,2,4,5,3-中序遍历结果:4,2,5,1,3-后序遍历结果:4,5,2,3,1三、二叉树的操作6.请实现二叉树的插入操作。
答:以下是二叉树的插入操作的示例代码:```class Node:def __init__(self, value):self.value = valueself.left = Noneself.right = Nonedef insert(root, value):if root is None:root = Node(value)else:if value < root.value:if root.left is None:root.left = Node(value)else:insert(root.left, value)else:if root.right is None:root.right = Node(value)else:insert(root.right, value)```7.请实现二叉树的查找操作。
数据结构二叉树习题含答案
} ChangeLR(T->lchild); ChangeLR(T->rchild); } ( 4)设计二叉树的双序遍历算法(双序遍历是指对于二叉树的每一个结点来说,先访 问这个结点, 再按双序遍历它的左子树, 右子树)。 void DoubleTraverse(BiTree T) { if(T == NULL) return; else if(T->lchild==NULL&&T->rchild==NULL) cout<<T->data; else { cout<<T->data; DoubleTraverse(T->lchild); cout<<T->data; DoubleTraverse(T->rchild); } } ( 5)计算二叉树最大的宽度(二叉树的最大宽度是指二叉树所有层中结点个数的最大 值) 。 [ 题目分析 ] 求二叉树高度的算法见上题。求最大宽度可采用层次遍历的方法,记下各 层结点数,每层遍历完毕,若结点数大于原先最大宽度,则修改最大宽度。 int Width(BiTree bt)// { if (bt==null) else {BiTree Q[];//Q 结点在队列中的位置 temp=0; maxw=0; Q[rear]=bt; // while (front<=last) {p=Q[front++]; temp++; // 同层元素数加 1 左子女入队 右子女入队 if (p->lchild!=null) Q[++rear]=p->lchild; // if (p->rchild!=null) Q[++rear]=p->rchild; // if (front>last) {last=rear; if (temp>maxw) maxw=temp;//last temp=0; }// if return (maxw); }// while 指向下层最右元素 , 更新当前最大宽度 // 一层结束, //temp 记局部宽度 , maxw 记最大宽度 根结点入队列 是队列,元素为二叉树结点指针,容量足够大 队头指针 ,rear 队尾指针 ,last 同层最右 front=1;rear=1;last=1;//front 求二叉树 bt 的最大宽度 return (0); // 空二叉树宽度为 0 然后再一次访问这个结点, 接下来按双序遍历它的
第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所示。
①请分别用双亲表示法、孩子表示法、孩子兄弟表示法给出该树的存储结构。
(山东科技大学)PTA数据结构答案与解析
2.单选题
2-1* 如果一棵非空k(k≥2)叉树T中每个非叶子结点都有k个孩子,则称T为正则k叉树。若T的高度为h(单结点的树 h=1),则T的结点数最多为:(3分) 1. ( 2. ( 3. ( )/(k−1) )/(k−1) )/(k−1)
4. 以上都不是 解析:将k=2带入,套用二叉树的结点树结论,发现A为正确形式 答案: A 2-2* 如果一棵非空k(k≥2)叉树T中每个非叶子结点都有k个孩子,则称T为正则k叉树。若T的高度为h(单结点的树 h=1),则T的结点数最少为:(3分) 1. ( 2. ( )/(k−1)+1 )/(k−1)−1
3. 4. 解析:这道题我不知道怎么正确推导答案,不过这题可以举一个正确的二叉树的例子,带答案用排除法做 答案: D 2-3 要使一棵非空二叉树的先序序列与中序序列相同,其所有非叶结点须满足的条件是:(2分) 1. 只有左子树 2. 只有右子树 3. 结点的度均为1 4. 结点的度均为2 解析:略 答案: B 2-4 已知一棵二叉树的树形如下图所示,其后序序列为{ e , a , c , b , d , g , f }。树中与结分支数,n代表结点数,联立上边二式可得正确答案,故选C 答案: C 单位: 浙江大学 2-8 有一个四叉树,度2的结点数为2,度3的结点数为3,度4的结点数为4。问该树的叶结点个数是多少?(2分) 1. 10 2. 12 3. 20 4. 21 解析:根据题意随便画一种符合题意的图即可判断,也可以通过公式推导。
解析:知道中序遍历和先序遍历,是可以画出树来的。如果不是很会这种方法,反正只有三个节点,大可以画图举 例。可得没有树满足先序是ABC,中序是CAB的。 我们这样去分析:由先序遍历可得A是根节点;由中序遍历可得C是左孩子,B是右孩子,而先序遍历中B是左孩 子,C是右孩子,矛盾,所以不可能滴 答案: F
树和二叉树(习题及作业)
• 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个字母设计哈夫曼编码; • 计算其带权路径长度
树与二叉树1_习题与解答
1、括号的匹配(表达式的合法性检查)[问题描述]假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。
请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。
假设表达式长度小于255,左圆括号少于20个。
[问题分析]假设输入的字符串存储在c中(var c:string[255])。
我们可以定义一个栈:var s:array[1..maxn] of char;top:integer;用它来存放表达式中从左往右的左圆括号(maxn=20)。
算法的思路为:顺序(从左往右)扫描表达式的每个字符c[i],若是“(”,则让它进栈;若遇到的是“)”,则让栈顶元素出栈;当栈发生下溢或当表达式处理完毕而栈非空时,都表示不匹配,返回“NO”;否则表示匹配,返回“YES”。
[参考程序]program lx5;const maxn=20;var c:string;function judge(c:string):boolean;var s:array[1..maxn] of char;top,i:integer;ch:char;beginjudge:=true;top:=0;i:=1;ch:=c[i];while ch<>'@' dobeginif (ch='(') or (ch=')') thencase ch of'(' : begin top:=top+1;s[top]:='(' end;')' : if top>0 then top:=top-1else begin judge:=false;exit end;end;i:=i+1;ch:=c[i];end;if top<>0 then judge:=false;end;begin {main}assign(input,'match.in');assign(output,'match.out');reset(input);rewrite(output);readln(c);if judge(c) then writeln('YES') else writeln('NO');close(input);close(output);end.2、编程把中缀表达式转换成后缀表达式[问题描述]输入一个中缀表达式,编程输出其后缀表达式,要求输出的后缀表达式的运算次序与输入的中缀表达式的运算次序一致。
树和二叉树作业
E
K
F
L
A 1 如图所示的二叉树
的(a)画出其顺序存储和二叉链表
存储。(b)列出该二叉树的叶子
B
结点,指出该二叉树的深度 (c)分别写出该二叉树的先序,中序,
后序遍历序列。
C
2 编写一个算法统计二叉树
中叶子结点的个数
G
D
3)已知一棵二叉树的前序遍历的 结果是ABECDFGHIJ, 中序遍历
H 的结果是EBCDAFHIGJ,
解: (1)空二叉树或任一结点均无左子树的非空二叉树 (2)空二叉树或任一结点均无右子树的非空二叉树
(3)空二叉树或仅有一个结点的二叉树 (4)空二叉树或仅有一个结点的二叉树
3 假定用于 通信的电 文仅由8个 字母c1, c2,
c3, c4, c5,
c6, c7, c8 组成, 各字母在 电文中出 现的频率 分别为5,
0
22 17
10
C2:25
1
C7:36
0
7
1
C5:10 0
11 C6:11
1
C3:3 C8:4 C1:5 C4:6
电文总码数: 0100 1000000101 001 011 11 0001
注意:电文总编码形式不唯一,只要带权路径总长度为257的最优 二叉树编码都是符合要求的.
>lchild)+CountLeaf2(bt->rchild)); }
A
3)重建二叉树 E
B C
F
G
H
J
Байду номын сангаасD I
作业:2
1)转化的二叉树 如图
NULL
1
3 2
4
数据结构 第六章 树和二叉树作业及答案
第六章树和二叉树作业一、选择题(每题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、树最适合用来表示()。
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)
树和二叉树一、下面是有关二叉树的叙述,请判断正误()1. 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。
()2.二叉树中每个结点的两棵子树的高度差等于1。
()3.二叉树中每个结点的两棵子树是有序的。
()4.二叉树中每个结点有两棵非空子树或有两棵空子树。
()5.二叉树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。
()6.二叉树中所有结点个数是2k-1-1,其中k是树的深度。
()7.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。
()8.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i-1个结点。
()9.用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。
()10. 具有12个结点的完全二叉树有5个度为2的结点。
二、填空1.由3个结点所构成的二叉树有种形态。
2. 一棵深度为6的满二叉树有 31个分支结点和 32 个叶子。
3.一棵具有257个结点的完全二叉树,它的深度为 9 。
4.设一棵完全二叉树有700个结点,则共有 350 个叶子结点。
5. 设一棵完全二叉树具有1000个结点,则此完全二叉树有 500 个叶子结点,有 499 个度为2的结点,有 1 个结点只有非空左子树,有 0 个结点只有非空右子树。
6.一棵含有n个结点的k叉树,可能达到的最大深度为,最小深度为。
三、选择题()1.不含任何结点的空树。
(A)是一棵树; (B)是一棵二叉树;(C)是一棵树也是一棵二叉树; (D)既不是树也不是二叉树()2.二叉树是非线性数据结构,所以。
(A)它不能用顺序存储结构存储; (B)它不能用链式存储结构存储;(C)顺序存储结构和链式存储结构都能存储; (D)顺序存储结构和链式存储结构都不能使用()3. 具有n(n>0)个结点的完全二叉树的深度为。
数据结构树和二叉树习题(有答案)
第六章 树和二叉树一、选择题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【北京航空航天大学 1999 一、3 (2分)】2.算术表达式a+b*(c+d/e )转为后缀表达式后为( )【中山大学 1999 一、5】A .ab+cde/*B .abcde/+*+C .abcde/*++D .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-G 4. 设树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-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、已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,……,n m个度为m的结点,问树中有多少个叶子结点?2、由四个结点a、b、c、d组成二叉树,共有多少种不同的结构?3、已知一棵具有n个结点的完全二叉树被顺序地存储于一维数组A中,试编写一个算法,打印出编号为i的结点的双亲和所有孩子。
4、写出对二叉树进行中序遍历的非递归算法。
5、已知一组元素为(46,25,78,62,12,37,70,29),画出按元素排列顺序输入生成的一棵二叉排序树。
6、已知一棵二叉排序树如下图所示,若从中依次删除72、12、49、28结点,试分别画出每删除一个结点后得到的二叉排序树。
7、有七个带权结点a、b、c、d、e、f、g,分别带权3、7、8、2、5、8、4,试以它们为叶子结点构造一棵哈夫曼树(请按照左子树根结点的权小于等于右子树根结点的权的次序构造)。
8、在一份电文中,共用到了五种字符:a、b、c、d、e,它们的出现频率依次为4、7、5、2、9,试画出对应的编码哈夫曼树(请按照左子树根结点的权小于等于右子树根结点的要的次序构造),求出每个字符的哈夫曼编码。
二、编程题1、二叉树的遍历问题【问题描述】输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。
输入:输入文件为tree.in,共两行,第一行一个字符串,表示树的先序遍历;第二行一个字符串,表示树的中序遍历。
树的结点一律用小写字母表示。
输出:输出文件为tree.out,仅一行,表示树的后序遍历序列。
【样例输入】abdecdbeac【样例输出】debca2、假定一棵树采用标准形式存储,试写出以广义表形式输出树的算法。
3、假定树采用标准形式存储,试写出求其深度的算法。
4、FBI树(fbi.pas)【问题描述】我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。
数据结构树和二叉树习题及答案
数据结构树和二叉树习题及答案集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#习题六树和二叉树一、单项选择题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层上最多含有结点数为()A.2I B. 2I-1-1 C. 2I-1 D.2I -110.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( )结点A.2h B.2h-1 C.2h+1 D.h+111. 利用二叉链表存储树,则根结点的右指针是()。
数据结构 树和二叉树 习题
树与二叉树一.选择题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。
第6章 树和二叉树的作业
第6章树和二叉树
一、基础知识题
1.在结点个数为n(n>1)的各棵树中,高度最小的树的高度是多少?它有多少个叶结点?多少个分支结点?高度最大的树的高度是多少?它有多少个叶结点?多少个分支结点?
2.试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。
3.如果一棵树有n1个度为1的结点,有n2个度为2的结点,…,n m个度为m 的结点,试问有多少个度为0的结点?试推导之。
4.试分别找出满足以下条件的所有二叉树:
(1)二叉树的前序序列与中序序列相同;
(2)二叉树的中序序列与后序序列相同;
(3)二叉树的前序序列与后序序列相同。
5.填空题
(1)对于一棵具有n个结点的树,该树中所有结点的度数之和为。
(2)假定一棵三叉树的结点个数为50,则它的最小高度为,最大高度为。
(3)一棵高度为h的四叉树中,最多含有结点。
(4)在一棵三叉树中,度为3的结点数有2个,度为2的结点数有1个,度为1的结点数为2个,那么度为0的结点数有个。
(5)一棵高度为5的满二叉树中的结点数为个,一棵高度为3的满四叉树中的结点数为个。
(6)在一棵二叉树中,假定度为2的结点有5个,度为1的结点有6个,则叶子结点数有个。
(7)对于一棵含有40个结点的理想平衡树,它的高度为。
(8)若对一棵二叉树从0开始进行结点编号,并按此编号把它顺序存储到一堆数组a中,即编号为0的结点存储到a[0]中,其余类推,则a[i]元素的左子女结点为,右子女结点为,双亲结点(i≥1)为。
(山东科技大学)PTA数据结构答案与解析-
2-6
若元素a、b、c、d、e、f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈工作,则不可能 得到的出栈序列是? (2分)
1. b c a e f d 2. c b d a e f 3. d c e b f a 4. a f e d c b
B代表分支数,n代表总结点数,将上边式子联立,然后带入题目中数据,可得
答案: D
2-9
若一棵二叉树的前序遍历序列是{ 4, 2, 1, 3, 6, 5, 7 },中序遍历序列是{ 1, 2, 3, 4, 5, 6, 7 },则下列哪句是错的?(3 分)
1. 这是一棵完全二叉树 2. 所有的奇数都在叶子结点上 3. 这是一棵二叉搜索树 4. 2是5的父结点 解析:根据前序,中序遍历可以建出图来,然后根据图来判断即可
答案: C
2-4
设栈S和队列Q的初始状态均为空,元素a、b、c、d、e、f、g依次进入栈S。若每个元素出栈后立即进入队列Q, 且7个元素出队的顺序是b、d、c、f、e、a、g,则栈S的容量至少是: (2分)
1. 1 2. 2 3. 3 4. 4
解析: 模拟即可 答案: C
2-5
假设有5个整数以1、2、3、4、5的顺序被压入堆栈,且出栈顺序为3、5、4、2、1,那么为了获得这样的输出, 堆栈大小至少为: (2分)
1-3 若一个栈的输入序列为{1, 2, 3, 4, 5},则不可能得到{3, 4, 1, 2, 5}这样的出栈序列。 (2分) 解析:2一定先与1出栈的 答案: T
2.单选题
2-1 给定一个堆栈的入栈序列为{ 1, 2, ⋯, n },出栈序列为{ p1, p2, ⋯, pn }。如果p2=n,则存在多少种不同的出栈序 列?(2分)
计算机学科专业基础综合数据结构-非统考补充内容:串、数组和稀疏矩阵、树与二叉树(一)
计算机学科专业基础综合数据结构-非统考补充内容:串、数组和稀疏矩阵、树与二叉树(一)(总分:103.00,做题时间:90分钟)一、{{B}}单项选择题{{/B}}(总题数:45,分数:103.00)1.一棵有n个结点的树的所有结点的度数之和为______。
∙ A.n-1∙ B.n∙ C.n+1∙ D.2n(分数:2.00)A. √B.C.D.解析:[解析] 对于一棵树,所有结点的度之和等于分支总数,总分支数比总结点数少1,因此有n个结点的树度之和等于n-1。
2.在二叉树中某一结点的深度为3,高度为4,该树的高度至少为______。
∙ A.5∙ B.6∙ C.7∙ D.8(分数:2.00)A.B. √C.D.解析:[解析] 该结点处于第3层,从叶结点向上处于第4层。
由根结点开始从上至下到该结点所在的层一共3层,而从该结点所在层开始,不包括该结点所在层到某一叶子结点一共3层,因此,至少有6层。
3.在一棵满二叉树中,某结点的深度为4,高度为4,则可推知该满二叉树的高度为______。
∙ A.4∙ B.5∙ C.6∙ D.7(分数:2.00)A.C.D. √解析:[解析] 对于二叉树中的某个结点,其深度是从根算起的,而高度是从叶结点算起的。
一个叶结点的高度为1,其他任意一个结点的高度等于其左、右子树高度中的大值再加1。
此结点从上向下算是第4层,从下向上算也是第4层,由此可知高度为7。
4.一个深度为k且只有k个结点的二叉树按照完全二叉树顺序存储的方式存放于一个一维数组R[n]中,则n应至少是______。
∙ A.2k∙ B.2k+1∙ C.2k-1∙ D.2k(分数:2.00)A.B.C. √D.解析:[解析] 深度为k且只有k个结点的二叉树是一棵单支树。
本题需要计算可以保证存储这样一棵二叉树的最小空间,因此要找到所有这种单支二叉树中占用存储空间最大的那一棵,正好对应一棵所有结点的左子树均为空的单枝树,此时的二叉树所需要的存储空间恰恰和与其高度相同的满二叉树相同,需要2k-1个结点单元。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
树作业(一)
【作业要求】
1.提交文档,写出答案
2.如果有需要绘图,可以手绘拍照节省时间
【题目说明】
1 单项选择题
1. 由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法_B_。
A. 正确
B. 错误
2. 假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为
B 个。
A.15 B.16C.17D.47
3. 按照二叉树的定义,具有3个结点的不同形状的二叉树有__C__种。
A. 3
B. 4
C. 5
D. 6
4. 按照二叉树的定义,具有3个不同数据结点的不同的二叉树有__C__种。
A. 5
B. 6
C. 30
D. 32
5. 深度为5的二叉树至多有__C__个结点。
A. 16
B. 32
C. 31
D. 10
6. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为_ _B__。
A. 2h
B. 2h-1
C. 2h+1
D. h+1
7. 对一个满二叉树,m个树叶,n个结点,深度为h,则__D__ 。
A. n=h+m
B. h+m=2n
C. m=h-1
D. n=2 h-1
8. 如图1所示的4棵二叉树,__C__不是完全二叉树。
(A) (B) (C) (D)
图1
9. 树最适合用来表示__C__。
A. 有序数据元素
B. 无序数据元素
C. 元素之间具有分支层次关系的数据
D. 元素之间无联系的数据
2 填空题
1. 举例说明树和二叉树的两个主要差别_树的节点的最大度数没有限制,但是二叉树的节点的最大度数为2___、__树中节点的子节点没有顺序之分,但是二叉树中节点的子节点分左孩子、右孩子__。
2. 一棵二叉树的结点数据采用顺序存储结构,存储于数组t中,如下图所示,请画出该二叉树的形态。
123456789101112131415161718192021
e a
f d
g c j l
h b
一棵二叉树的顺序存储数组t
3. 深度为k的完全二叉树至少有__2k−1__个结点。
至多有__2k−1__个结点,若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是__2k−2+1__。
4、已知一棵完全二叉树的第6层(设根是第1层)有8个叶结点,则该完全二叉树的结点个数最多是多少?
第6层只有8个节点,说明第6层不满,一定是深度最大的那层。
前5层一共有25−1=31个节点,所以共有39个节点。
5、已知一棵有2011个结点的树,其叶结点个数为116,该树对应的二叉树无右孩子的结点个数为多少?
在树中,没有兄弟结点的结点转化到二叉树中才没有右孩子,而这类结点只可能是每个结点的子结点中最右的那个(自然也包括叶子结点),或者根结点,其中第一项就是分支数,第二项恒为1。
所以答案为总结点数-叶子结点数+根结点数=1896。
3 简答题
1. 已知一棵树如图2所示,请转化为一棵二叉树。
2. 一棵含有N 个结点的k 叉树,可能达到的最大深度和最小深度各为多少?
达到最大深度时,该树每一层只有一个结点,故最大深度为N 。
达到最小深度时,该树应尽可能“满”,最小深度为⌈log k (N +1)⌉
3. 画出下图所示的各二叉树所对应的森林。
g
c e f
d
b a
图2 一棵树
(a)
(b)
(c)
(d)
(e)。