树与二叉树练习题

合集下载

树和二叉树-练习题

树和二叉树-练习题

A. n1+n2+n3
B. n2+n3
C. n1+n2
D. n1+n3
2021/4/9
2
7.如果在树的孩子兄弟链存储结构中有6个空的左指针域, 7个空的右指针域,则该树中树叶的个数为( )
A.7个 B.6个 C.13个 D.不能确定
8.如果T1是由树T转换而来的二叉树,那么T中结点的后 根序列就是T1中结点的( ) 序列
A
B
C
D EH F
G
先序遍历序列:ABDEGCHF
2021/4/9
5
2.画出下列存储结构对应的二叉树,并将其转换成对应的 森林。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 ABD 0 CEH0 0 0 0 FG I
A
BDCE源自HFG IA
D
H
BC EG I
F
2021/4/9
6
3.画出以{1, 8, 2, 10, 12, 4,11}为权值的哈夫曼树(权值
5.已知二叉树的先序遍历序列为ADBECF,中序遍历序列 为 BDEACF , 则 这 棵 二 叉 树 的 后 序 遍 历 序 列 为 ( BEDFCA ) ,该树对应的森林包括( 3 )棵树。
2021/4/9
4
1.已知一棵二叉树的后序遍历序列为DGEBHFCA,中序 遍历序列为DBEGAHCF,画出该二叉树,并写出二叉 树的先序遍历序列。
大的为右子树),并求出该哈夫曼树的带权路径长度
WPL。
48
21
27
10 11
12 15
7
8
3
4
1
2
WPL=(1+2)*5+4*4+8*3+(10+11+12)*2

数据结构树和二叉树习题

数据结构树和二叉树习题

数据结构树和二叉树习题一、树的基本概念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.请实现二叉树的查找操作。

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

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

• 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个字母设计哈夫曼编码; • 计算其带权路径长度

习题5 树和二叉树

习题5  树和二叉树

习题5 树和二叉树一、选择题:1.在具有n个结点的完全二叉树中,结点i(i>1)的父结点是()A.2i B.不存在C.2i+1 D.⌊ i/2⌋2. 有m个叶结点的哈夫曼树所具有的结点数为()A.m B.m+1 C.2m D.2m - 13. 下列陈述中正确的()A.二叉树是度为2的有序树B.二叉树中结点只有一个孩子时无左右之分C.二叉树中必有度为2的结点D.二叉树中最多只有两棵子树,并且有左右之分4. 以二叉链表作为二叉树的存储结构,在具有n个结点的二叉链表中(n>0),空链域的个数为()A.2n - 1 B.n - 1 C.n + 1 D.2n + 15. 将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为()A.99 B.98 C.50 D.486. 在一棵具有五层的满二叉树中,结点总数为()A.31 B.32 C.33 D.167. 在一棵二叉树中,第5层上的结点数最多为()A.8 B.15 C.16 D.328. 由二叉树的()遍历,可以惟一确定一棵二叉树A.前序和后序B.前序和中序C.后序D.中序9. 具有35个结点的完全二叉树的深度为()。

A.5B.6C.7D.810. 已知一棵二叉树的先序遍历序列为EFHIGJK,中序遍历序列为HFIEJGK,则该二叉树根的右子树的根是()。

A.E B. F C. G D. J11. 由4个结点构造出的不同的二叉树个数共有()。

A.8 B. 10 C.12 D.1412. 在完全二叉树中,如果一个结点是叶子结点,则它没有()。

A.左孩子结点B. 右孩子结点C.左、右孩子结点D.左、右孩子结点和兄弟结点13. 深度为6的二叉树最多有()个结点。

A.64 B.63 C.32 D.3114. 二叉树使用二叉链表存储,若p指针指向二叉树的一个结点,当p->lchild=NULL时,则()。

树和二叉树习题及答案

树和二叉树习题及答案

树和二叉树习题及答案一、填空题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有3个兄弟结点(包括A自身),B是A的双亲结点,则B的度是()。

A. 2B. 3C. 4D. 52.有关二叉树下列说法正确的是()A.二叉树的度为2B.一棵二叉树的度可以小于2C.二叉树中至少有一个结点的度为2D.二叉树中任何一个结点的度都为23.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子的编号为()。

A.98B.99C.50D.484.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点至少为()。

A.hB.2h-1C.2h+1D.h+15.假定在一棵二叉树中,双分支结点数为15个,单分支结点数为32个,则叶子结点数为。

A. 15B. 16C. 17D. 476.假定一棵二叉树的结点数为18个,则它的最小高度。

A. 4B. 5C. 6D. 187.在一棵二叉树中第五层上的结点数最多为。

A. 8B. 15C. 16D. 328.在一棵具有五层的满二叉树中,结点总数为。

A. 31B. 32C. 33D. 169.一个有31个结点的满二叉树,其深度有()。

A.5层B. 6层C. 7层D.8层10.一个具有767个结点的完全二叉树,其叶子结点个数为()。

A. 383B. 384C. 385D. 38611.设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 。

则T中的叶子数为()。

A.5 B.6 C.7 D.812.某二叉树中序序列为abcdefg,后序序列为bdcafge,则前序序列是()。

A. egfacdbB. eacbdgfC. eagcfbdD.上面的都不对13.设A、B为一棵二叉树上的两个结点。

在中序遍历时,A在B前面的条件是()。

A. A在B的右方B. A在B的左方C. A是B的祖先D. A是B的子孙14.在N个结点的线索二叉树中,线索的数目为()A.N-1B.NC.N+1D.2N15.引入二叉线索树的目的是()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个叶子结点的哈夫曼树中,其分支结点(非叶子结点)的总数为( )。

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

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

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、已知一算术表达式的中缀形式为 A-B/C+D*E,前缀形式为+-A/BC*DE,其后缀形式为( )。

A.ABC/-DE*+B.AB/C-D*E+C. A-BC/DE*+D. ABCDE/-*+正确答案:A2、有关二叉树下列说法正确的是()。

A.二叉树中任何一个结点的度都为2B.一棵二叉树的度可以小于2C.二叉树中每个结点的度都为2D.二叉树中至少有一个结点的度为2正确答案:B3、在一棵高度为k的满二叉树中,结点总数为()。

A.2k-1B. 2k-1C. 2k-1+1D.2k正确答案:B4、某二叉树中有60个叶子结点,则该二叉树中度为2的结点个数为()。

A.不确定B.60C.59D.61正确答案:C解析:任意二叉树中,n0=n2+15、高度为7的完全二叉树,最少有()个结点。

A.127B.128C.63D.64正确答案:D解析:前6层都是满的,最后一层(第7层)近1个结点。

可保证题目条件。

6、高度为7的二叉树,最少有()个结点。

A.7B.127C.13D.64正确答案:A解析:每层只有1个结点。

共7个即可构成一个高度为7的二叉树。

7、对任意一棵有n个结点的树,这n个结点的度之和为( )。

A.n-1B.2*nC.n+2D.n正确答案:A解析:所有结点的度之和为分支个数,分支个数即为结点个数-18、在下列存储形式中,()不是树的存储形式。

A.双亲表示法B.孩子-兄弟表示法C.孩子链表表示法D.顺序存储表示法正确答案:D9、对二叉树中的结点进行编号,要求根结点的编号最小,左孩子结点编号比右孩子结点编号小。

则应该采用()遍历方法对其进行编号。

A.层次B.先序C.后序D.中序正确答案:B10、某二叉树中有60个叶子结点,则该二叉树中度为2的结点个数为()。

A. 59B.61C.60D.不一定正确答案:A11、树的后根遍历,相当于对应二叉树的()遍历。

A.中序B.后序C.层次D.先序正确答案:A二、判断题1、完全二叉树一定存在度为1的结点。

树与二叉树的练习题

树与二叉树的练习题

习题一、选择题1.有一“遗传”关系:设x是y的父亲,则x可以把它的属性遗传给y。

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

A.向量B.树 C图 D.二叉树2.树最合适用来表示()。

A.有序数据元素 B元素之间具有分支层次关系的数据C无序数据元素 D.元素之间无联系的数据3.树B的层号表示为la,2b,3d,3e,2c,对应于下面选择的()。

(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_lB.h C.2h-1 D.2h5.在一棵完全二叉树中,若编号为f的结点存在右孩子,则右子结点的编号为()。

A.2iB.2i-lC.2i+lD.2i+26.一棵二叉树的广义表表示为a(b(c),d(e(,g(h)),f)),则该二叉树的高度为 ()。

A.3B.4C.5D.67.深度为5的二叉树至多有()个结点。

A.31B.32C.16D.108.假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为()个。

A.15B.16C.17D.479.题图6-1中,()是完全二叉树,()是满二叉树。

10.在题图6-2所示的二叉树中:(1)A结点是A.叶结点 B根结点但不是分支结点C根结点也是分支结点 D.分支结点但不是根结点(2)J结点是A.叶结点 B.根结点但不是分支结点C根结点也是分支结点 D.分支结点但不是根结点(3)F结点的兄弟结点是A.EB.D C.空 D.I(4)F结点的双亲结点是A.AB.BC.CD.D(5)树的深度为A.1B.2C.3D.4(6)B结点的深度为A.1B.2C.3D.4(7)A结点所在的层是A.1B.2C.3D.411.在一棵具有35个结点的完全二叉树中,该树的深度为()。

A.5B.6C.7D.812.一棵有124个叶结点的完全二叉树,最多有()个结点。

树和二叉树习题及答案

树和二叉树习题及答案

一、填空题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),若它有左孩子则左孩子结点的编号为________,若它有右孩子,则右孩子结点的编号为________,若它有双亲,则双亲结点的编号为________。

数据结构第四章树和二叉树习题

数据结构第四章树和二叉树习题

数据结构第四章树和二叉树习题04 树和二叉树【单选题】1. 下列选项中不属于树形结构逻辑特征的是(C)。

A、有的结点有多个直接后继 B、有的结点没有直接后继 C、有的结点有多个直接前驱 D、有的结点没有直接前驱2. 下列叙述中错误的是(B)。

A、树的度与该树中结点的度的最大值相等B、二叉树就是度为2的有序树C、有5个叶子结点的二叉树中必有4个度为2的结点D、满二叉树一定是完全二叉树3. 一棵二叉树中第6层上最多有(C)个结点。

A、2 B、31C、32D、644. 一棵高为k的二叉树最少有(B)个结点。

A、k-1 B、kC、k+1D、2k-1E、2k-15. 一棵高为k的二叉树最多有(C)个结点。

A、k+1 B、2k-1 C、2k-1 D、2k E、2k+16. 一棵高为k的完全二叉树最少有(B)个结点。

A、2k-1-1 B、2k-1 C、2k-1 D、2k7. 一棵高为k的完全二叉树最多有(C)个结点。

A、2k-1-1 B、2k-1 C、2k-1 D、2k8. 一棵度为3的树中,度为3的结点有2个,度为2的结点有2个,度为1的结点有2个,则度为0的结点有(D)个。

A、4 B、5 C、6 D、79. 含1000个结点的完全二叉树的高度为(B)。

A、9 B、10 C、11 D、1210. 设完全二叉树T中含有n个结点,对这些结点从0开始按层序进行编号,若编号为i的结点有左孩子,则左孩子的编号为(D)。

A、2(i-1)B、2i-1C、2iD、2i+1E、2(i+1)11. 已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为(D)。

A、-A+B*C/DE B、-A+B*CD/EC、-+*ABC/DED、-+A*BC/DE12. 已知一棵二叉树的先序序列为abdegcfh,中序序列为dbgeachf,则该二叉树的后序序列为(B)。

A、gedhfbca B、dgebhfca C、abcdefgh D、acbfedhg13. 先序遍历与中序遍历所得遍历序列相同的二叉树为(D)。

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

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

数据结构树和二叉树习题及答案集团标准化工作小组 #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. 利用二叉链表存储树,则根结点的右指针是()。

树与二叉树自测题

树与二叉树自测题

第二部分树与二叉树自测题一、选择与填空(选择与填空,20分,每题1分)1.深度为k的完全二叉树至少有()个结点。

至多有()个结点。

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

2.由如下图所示的二叉树,回答下列问题。

其中序遍历序列为()。

其前序遍历序列为()。

其后序遍历序列为()。

3. 一个完全二叉树的叶子结点数为n,最后一层的结点数大于等于2,则该二叉树的深度为()。

4、若树T有a个度为1的结点,b 个度为2的结点,c个度为3的结点。

则该树有个叶子结点。

5、若二叉树有20个叶子结点,30个结点仅有1个孩子,则该二叉树的总的结点数是()6、一个二叉树有102片叶子,则该二叉树中度为2的结点数是()7. 深度为5的二叉树至多有()个结点。

A.32 B.31 C.16 D.108. 某二叉树结点的中序序列为d,e,b,a,c,后序序列为d,a,b,e,c,则该二叉树结点的前序序列为。

A. acbedB. decabC. deabcD. cedba9、一棵二叉树的结点数为18个,则它的最小高度为_____。

A 、4B 、5C 、6D 、1810、在一棵度为4的树T 中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T 的叶子结点个数是()A.41B. 82C. 113D. 12211、下列线索二叉树中,符合后序线索树定义的是()A.C D.12、对(n>=2)个权值均不相同的字符构成赫夫曼树。

关于该树的叙述中,错误的是()A.该树一定是一颗完全二叉树B.该树一定没有度为1的结点C .该树中两个权值最小的结点一定是兄弟结点D .树中的任意一非叶子结点的权值一定不小于下一任意结点的权值13、已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则完全二叉树的结点个数最多是 ( )A .39 B.52 C.111 D.11914、将森林转换为对应的二叉树,若在二叉树中,结点u 是结点v 的父结点的父结点,则在原来的森林中,u 和v 可能具有的关系是 I .父子关系 II.兄弟关系 III. u 的父结点与v 的父结点是兄弟关系 ()A.只有IIB.I 和IIC.I 和IIID.I 、II 和III15、按后根次序周游树(林)等同于按什么次序周游该树(林)对应的二叉树?A )前序B )后序C )中序(对称序)D )层次次序16、对于给出的一组权w ={10, 12, 16, 21, 30},通过霍夫曼算法求出的扩充二叉树的带权外部路径长度为A )89B )189C )200D )30017、具有12个结点的完全二叉树有A 5个叶子B 5个度为2的结点C 7个分支结点D 2个度为1的结点18、有3个结点的所有二叉树有( )种形态。

第六章树和二叉树习题_数据结构

第六章树和二叉树习题_数据结构

习题六树和二叉树一、单项选择题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. 利用二叉链表存储树,则根结点的右指针是()。

A.指向最左孩子 B.指向最右孩子 C.空 D.非空14.在二叉树结点的先序序列,中序序列和后序序列中,所有叶子结点的先后顺序()A.都不相同 B.完全相同C.先序和中序相同,而与后序不同 D.中序和后序相同,而与先序不同15.在完全二叉树中,若一个结点是叶结点,则它没()。

数据结构 树和二叉树 习题

数据结构 树和二叉树 习题

树与二叉树一.选择题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。

树和二叉树-练习题

树和二叉树-练习题

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

树与二叉树练习题(五)
习题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;
_______①_____;
}
flag = 1;
p = NULL;
while(S.top != -1 && flag){
q = S.data[S.top];
if(_________②__________){
printf(q->data);
S.to--;
p = q;
}
else {
_________③__________;
flag = 0;
}
}
}while(__________④__________);
}
8. 具有n个结点的完全二又树,已经顺序存储在一维数组A[n]中,下面算法是将A中顺序存储变成二叉链表存储的完全二又树。

请在空缺处填入适当语句,以完成上述算法。

Elemtype A[n];
void CreatTree(BTNode *T, int i)
{
_________①_________;
T->data = A[i];
if(________②________)
CreatTree(_______③________);
else
r->lchild = NULL;
if(_________④_________)
CreatTree(_______⑤________);
else
r->rchild = NULL;
}
void BTree(ar a, BTNOde *p)
{
int j;
j = ________⑥__________;
CreatTree(p, j);
}
9. 二叉树采用二叉链表存储结构,试设计算法计算一棵给定二叉树的各结点的子孙个数。

10. 一棵具有n个结点的完全二叉树,以一维数组作为存储结构,试设计一个对该完全二叉树进行前序遍历的算法。

11. 已知一棵二叉树的前序遍历序列和中序遍历序列,编写算法建立对应的二叉树。

12. 编写一个算法,利用叶子结点中的空指针域,将所有叶子结点链接为一个带有头结点的单链表,算法返回头结点的地址。

字符串练习题(四)
习题2010-04-26 17:20:23 阅读138 评论0 字号:大中小订阅
1. 设s=‘I_AM_A_TEACHER’,其长度是_________________。

2.空串是______________,其长度等于________________。

3.设sl=‘GOOD’,s2=‘☆’,s3=‘BYE!’,则sl、s2和s3连接后的结果是________。

4.两个串相等的充分必要条件是___________________。

5.简述一个字符串中子串的构成。

★6. 设目标为s=’abcaabbabcabaacbacba’,模式p=’abcabaa’。

(1) 计算模式p的nextval函数值;
(2) 不写出算法,只画出利用KMP算法(采用next函数值)进行模式匹配时每一趟的匹配过程。

★7. 模式匹配算法是在主串中快速寻找模式的一种有效的方法。

如果设主串的长度为m,模式的长度为n,则在主串中寻找模式的KMP算法的时间复杂性是多少?如果某一模式p=’abcaacabaca’,请给出它的next 函数值及next函数的修正值nextval之值。

【说明】
第6题、第7题可以不做。

栈与队列练习题(三)
习题2010-04-25 17:19:42 阅读216 评论0 字号:大中小订阅
1.循环队列的优点是什么?如何判别它的空和满?
2.内存中一片连续空间(不妨假设地址从0到m-1)提供给两个栈S1与S2使用,怎样分配这部分存储空间,使得对任一个栈仅当这部分空间全满时才发生上溢。

3.利用两个栈Sl和S2模拟一个队列(如客户队列)时,如何用栈的运算实现队列的插入、删除运算。

请简述算法思想。

4.在栈顶指针为head的链栈中,编写计算该链栈中结点个数的算法。

5.编写算法计算链队列Q中结点的个数。

6.假设以带头结点的循环单链表表示队列,并且只设一个指针rear指向队尾结点,但不设头指针,请写出相应的入队列和出队列算法。

7. 假设以I和O分别表示入栈和出栈操作,栈的初态和终栈均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列。

(1) 下面所示的序列中哪些是合法的?
A.IOIIOIOO B.IOOIOIIO C.IIIOIOIO D.IIIOOIOO
(2) 通过对(1)的分析,写出一个算法:判定所给的操作序列是否合法,若合法返回l;否则返回0。

(假设被判定的操作序列已存入一维数组中)。

8. 设有两个栈S1,S2都采用顺序栈方式,并且共享一个存储区[0..MAXSIZE-1],为了尽量利用空间,减少溢出可能,可采用栈顶相向、迎面增长的存储方式,试设计Sl,S2有关入栈和出栈的操作算法。

#define MAXSIZE 100
typedef struct Sq_DoubleStack{
Elemtype data[MAXSIZE];
int top1, top2;
} Stack;
int Sq_DoublePush(Stack &S, Elemtype x, int flag)
{// 如果flag=1,将元素x压到栈S1中,如果flag=2,将元素x压到栈S2中
...
}
int Sq_DoublePop(Stack &S, Elemtype &x, int flag)
{// 如果flag=1,弹出栈S1中的元素,如果flag=2,弹出栈S2中的元素
...
}。

相关文档
最新文档