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

合集下载

树和二叉树练习题及解答_richard

树和二叉树练习题及解答_richard

树和二叉树练习题及解答_richard一、下面是有关二叉树的叙述,请判断正误(每小题1分,共10分)(√ )1. 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。

(× )2.二叉树中每个结点的两棵子树的高度差等于1。

(√ )3.二叉树中每个结点的两棵子树是有序的。

(× )4.二叉树中每个结点有两棵非空子树或有两棵空子树。

(×)5.二叉树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。

(应当是二叉排序树的特点)(× )6.二叉树中所有结点个数是2k-1-1,其中k是树的深度。

(应2i-1)(× )7.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。

(× )8.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i—1个结点。

(应2i-1)(√ )9.用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。

(正确。

用二叉链表存储包含n个结点的二叉树,结点共有2n个链域。

由于二叉树中,除根结点外,每一个结点有且仅有一个双亲,所以只有n-1个结点的链域存放指向非空子女结点的指针,还有n+1个空指针。

)即有后继链接的指针仅n-1个。

(√ )10. 〖01年计算机系研题〗具有12个结点的完全二叉树有5个度为2的结点。

最快方法:用叶子数=[n/2]=6,再求n2=n0-1=5二、填空(每空1分,共15分)1.由3个结点所构成的二叉树有 5 种形态。

2. 【计算机研2000】一棵深度为6的满二叉树有n1+n2=0+n2= n0-1=31 个分支结点和 26-1 =32个叶子。

注:满二叉树没有度为1的结点,所以分支结点数就是二度结点数。

3.一棵具有257个结点的完全二叉树,它的深度为 9 。

数据结构习题集第4章(2014更正)

数据结构习题集第4章(2014更正)

第4章树一、单项选择题:1.如下图4-1所示的4棵二叉树中,不是完全二叉树。

A. B. C. D.图4-1 4棵二叉树2.二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索,这种说法。

A.正确B.错误3.二叉树的先序遍历序列中,任意一个结点均处在其孩子结点的前面,这种说法。

A.正确B.错误4.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法。

A.正确B.错误5.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为。

A.2hB.2h-1C.2h+1D.h+16.如果T2是由有序树T1转换而来的二叉树,那么T1中结点的先根遍历就是T2中结点的遍历。

A.先序B.中序C.后序D.层次序7.某二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树一定是。

A.空或只有一个结点B.完全二叉树C.二叉排序树D.高度等于其结点数8. 如下图4-2所示的T2是由森林T1转化而来的二叉树,那么森林T1有 个叶子结点。

A.4B.5C.6D.7图4-2 一棵二叉树9. 按照二叉树的定义,具有3个结点的二叉树有 种。

A.3 B.4 C.5 D.610. 在一非空二叉树的中序遍历序列中,根结点的右边 。

A. 只有右子树上的所有结点B.只有右子树上的部分结点C. 只有左子树上的部分结点D.只有左子树上的所有结点11. 任何一棵二叉树的叶子结点在先序、中序和后序遍历序列中的相对次序 。

A.不发生改变B.发生改变C.不能确定D.以上都不对12. 设n ,m 为一棵二叉树上的两个结点,在中序遍历时,n 在m 前的条件是 。

A.n 在m 右方B.n 是m 祖先C.n 在m 左方D.n 是m 子孙13. 线索二叉树是一种 结构。

A.逻辑B.逻辑和存储C.物理D.线性二、填空题:1. 有一棵树如下图4-3所示,回答下面的问题:(1)这棵树的根结点是 ;(2)这棵树的叶子结点是 ;(3)结点k3的度是;(4)这棵树的度为;(5)这棵树的深度是;(6)结点k3的孩子结点是;(7)结点k3的双亲结点是。

数据结构与算法 习题解答 第4章

数据结构与算法 习题解答 第4章

第 4 章 树结构1.选择题(1)C (2)C (3)B (4)B (5)B (6)C (7)C (8)D (9)A (10)D (11)D (12)B (13)B (14)D (15)B2.判断题(1)√(2)√ (3)Ⅹ (4)Ⅹ(5)√ (6)Ⅹ(7)√ (8)√(9)√(10)Ⅹ (11)Ⅹ(12)Ⅹ(13)√(14)Ⅹ(15)Ⅹ(16)Ⅹ(17)√(18)Ⅹ(19)Ⅹ(20)√3.简答题(1)一棵度为 2 的树与一棵二叉树有何区别?树与二叉树之间有何区别?【解答】①二叉树是有序树,度为 2 的树是无序树,二叉树的度不一定是 2。

②二叉树是有序树,每个结点最多有两棵子树,树是无序树,且每个结点可以有多棵子树。

A(2)对于图 4-37 所示二叉树,试给出: 1)它的顺序存储结构示意图;BC2)它的二叉链表存储结构示意图; 3)它的三叉链表存储结构示意图。

DEF【解答】 1)顺序存储结构示意图:AB CDEF ^ ^ ^ G^ ^ HGH(图 4-37)2)二叉链表存储结构示意图:3)三叉链表存储结构示意图:ABC^^D^E^ ^ F^G^^H^A^BC^^ D^E^^F^ G^^ H^(3)对于图 4-38 所示的树,试给出: 1)双亲数组表示法示意图; 2)孩子链表表示法示意图; 3)孩子兄弟链表表示法示意图。

ABCGFEDIHJKMN(图 4-38)【解答】 1)双亲数组表示法示意图:2)孩子链表表示法示意图:0 A -1 1 B0 2 C0 3 D2 4 E2 5F1 6 G1 7 H5 8I 2 9J 4 10 K 4 11 M 3 12 N 83)孩子兄弟链表表示法示意图:0A 1B 2C 3D 4E 5F 6G 7H 8I 9J 10 K 11 M 12 N12^56^348^11 ^ 910 ^7^12 ^ABC^^GFEDI^^ H^^J^ K^ ^ M^ ^ N^(4)画出图 4-39 所示的森林经转换后所对应的二叉树,并指出森林中满足什么条件的 结点在二叉树中是叶子。

树和二叉树习题集与答案解析

树和二叉树习题集与答案解析

一、填空题1. 不相交的树的聚集称之为森林。

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

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

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

4. 在一棵二叉树中,度为零的结点的个数为n 0,度为2的结点的个数为n 2,则有n0= 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.请简要描述树的基本概念及其特点。

答:树是由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.请实现二叉树的查找操作。

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

数据结构(树和二叉树)练习题与答案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、不相交的树的聚集称之为森林。

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)次序的遍历实现编号。

计算机专业基础综合数据结构(树和二叉树)历年真题试卷汇编4

计算机专业基础综合数据结构(树和二叉树)历年真题试卷汇编4

计算机专业基础综合数据结构(树和二叉树)历年真题试卷汇编4(总分:74.00,做题时间:90分钟)一、综合题(总题数:35,分数:74.00)1.(1)试找出满足下列条件的二叉树:1)先序序列与后序序列相同2)中序序列与后序序列相同3)先序序列与中序序列相同4)中序序列与层次遍历序列相同(2)已知一棵二叉树的中序序列和后序序列分别为DBEAFIHCG和DEBHIFGCA,画出这棵二叉树。

【东北大学1999六(4分)】【东南大学2000一、4(6分)】(分数:2.00)__________________________________________________________________________________________ 正确答案:(正确答案:(1)先序遍历二叉树的顺序是“根一左子树一右子树”,中序遍历“左子树一根一右子树”,后序遍历顺序是“左子树一右子树一根”,根据以上原则,本题解答如下:1)若先序序列与后序序列相同,则或为空树,或为只有根结点的二叉树。

2)若中序序列与后序序列相同,则或为空树,或为任一结点至多只有左子树的二叉树。

3)若先序序列与中序序列相同,则或为空树,或为任一结点至多只有右子树的二叉树。

4)若中序序列与层次遍历序列相同,则或为空树,或为任一结点至多只有右子树的二叉树。

(2)由中序序列DBEAFIHCG和后序序列DEBHIFGCA)解析:2.分别给出满足下列条件的二叉树。

(1)前序和中序遍历结果相同;(2)前序和中序遍历结果不相同而是相反;(3)中序和后序遍历结果相同;(4)前序和后序遍历结果相同。

【四川大学2004】【烟台大学2007四、2(8分)】(分数:2.00)__________________________________________________________________________________________ 正确答案:(正确答案:空二叉树满足题目要求,若二叉树非空,则(1)前序和中序遍历结果相同的二叉树是任一结点无左子女; (2)前序和中序遍历结果不相同而是相反的二叉树是任一结点无右子女; (3)中序和后序遍历结果相同的二叉树是任一结点无右子女; (4)前序和后序遍历结果相同的二叉树是只有根结点。

数据结构第四章的习题答案

数据结构第四章的习题答案

数据结构第四章的习题答案数据结构第四章的习题答案在学习数据结构的过程中,习题是非常重要的一环。

通过解答习题,我们可以更好地理解和应用所学的知识。

在第四章中,我们学习了树和二叉树的相关概念和操作。

下面我将为大家提供一些第四章习题的答案,希望能帮助大家更好地掌握这一章节的内容。

1. 请给出树和二叉树的定义。

树是由n(n>=0)个结点构成的有限集合,其中有且仅有一个特定的结点称为根结点,其余的结点可以分为若干个互不相交的有限集合,每个集合本身又是一个树,称为根的子树。

二叉树是一种特殊的树结构,其中每个结点最多有两个子结点,分别称为左子结点和右子结点。

二叉树具有递归的定义,即每个结点的左子树和右子树都是二叉树。

2. 请给出树和二叉树的遍历方式。

树的遍历方式包括前序遍历、中序遍历和后序遍历。

前序遍历是先访问根结点,然后依次遍历左子树和右子树。

中序遍历是先遍历左子树,然后访问根结点,最后遍历右子树。

后序遍历是先遍历左子树和右子树,最后访问根结点。

二叉树的遍历方式包括前序遍历、中序遍历和后序遍历。

前序遍历是先访问根结点,然后依次遍历左子树和右子树。

中序遍历是先遍历左子树,然后访问根结点,最后遍历右子树。

后序遍历是先遍历左子树和右子树,最后访问根结点。

3. 给定一个二叉树的前序遍历序列和中序遍历序列,请构建该二叉树。

这个问题可以通过递归的方式解决。

首先,根据前序遍历序列的第一个结点确定根结点。

然后,在中序遍历序列中找到根结点的位置,该位置左边的结点为左子树的中序遍历序列,右边的结点为右子树的中序遍历序列。

接下来,分别对左子树和右子树进行递归构建。

4. 给定一个二叉树的中序遍历序列和后序遍历序列,请构建该二叉树。

和前面的问题类似,这个问题也可以通过递归的方式解决。

首先,根据后序遍历序列的最后一个结点确定根结点。

然后,在中序遍历序列中找到根结点的位置,该位置左边的结点为左子树的中序遍历序列,右边的结点为右子树的中序遍历序列。

数据结构(树和二叉树)练习题与答案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,该树采用孩子兄弟链存储结构时,则总的指针域数为()。

数据结构习题

数据结构习题

树和二叉树习题(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.有一“遗传”关系:设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个叶结点的完全二叉树,最多有()个结点。

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

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

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 ,后缀形式为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 )。

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

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

数据结构树和二叉树习题及答案集团标准化工作小组 #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。

数据结构二叉树习题

数据结构二叉树习题
第四章 习题—二叉树
14选择题 6 填空题
1.由三个结点可以构造出多少种不同的二叉树( C ) 。
A)3
B)4
C)5
D)6
2.在一棵深度为k的完全二叉树中,所含结点个数不小于( D )。
A)2k
B) 2k+1
C)2k-1
D) 2k-1
至少有多少个结点:k-1层全满, k层只有一个结点
2k-1-1+1=2k-1
5.在一棵二叉树中,假定度为2的结点数为5个,度 为1的结点数为6个,则叶子结点数为( 6 )个。
6.如图所示,该二叉树的中序遍历序列是 (ABCDEGF ) 。
后序遍历:
中序遍历:
dabec
debac
左子右树子树
前序遍历: c e d ba
c e db
a
14.下列关于二叉树的说法正确的是( C ) 。
A)一颗二叉树中的结点个数大于0
B)二叉树中任何一个结点要么是叶子,要么恰有两个子女
C)一棵二叉树中叶子结点的个数等于度为2的结点个数加1
D)二叉树中任何一个结点的左子树和右子树上的结点个数 一定相等。
性质2:k-1层的结点总数(最多)
3.如图所示的4棵二叉树中,( A )不是完全二叉树。
(A)
(B)
(C)
(D)
4.对于任何一棵二叉树,如果其终端结点数为n0,度为
2的结点数为n2,则n0=(
)。
A. n2-1 B. n2+1
C. n2
D. n2-2
5.树中所有结点的度等于所有结点数加( C )
中序遍历:
ABDGCFK
DGBAFCK
左子树
右子树
后序遍历:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

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

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

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

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

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

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

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

A、9B、10C、11D、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/DEB、-A+B*CD/EC、-+*ABC/DED、-+A*BC/DE13. 先序遍历与中序遍历所得遍历序列相同的二叉树为(D )。

A 、根结点无左孩子的二叉树B 、根结点无右孩子的二叉树C 、所有结点只有左子树的二叉树D 、所有结点只有右子树的二叉树14. 下列叙述中正确的是(D )。

A 、由先序遍历序列和后序遍历序列可以惟一确定一棵二叉树B 、由森林转化而得的二叉树,其根结点一定有右子树C 、完全二叉树一定是满二叉树D 、在结点数目相同的二叉树中,完全二叉树的路径长度最短15. 由树转换而得的二叉树,根结点(B )。

A 、没有左子树B 、没有右子树C 、左右子树都有D 、视树的形态而定16. 由一个非空森林转换而得的二叉树,其根结点(D )。

A 、一定没有左子树B 、一定没有右子树C 、左右子树一定都有D 、左、右子树可能都有,也可能都没有17. 度为m 的赫夫曼树中,若叶子结点个数为n ,则非叶结点个数为(C )。

A 、n-1B 、m-1C 、[(n-1)/(m-1)]D 、[n/(m-1)]-1E 、[(n+1)/(m+1)]-1【填空题】1. 森林是(m 棵互不相交的树的集合,其中m ≥0)。

2. 在k 叉树的第i 层上最多有(k i-1)个结点。

3. 一棵高为k 的m 叉树中最少有(k )个结点,最多有(11--m m k )个结点。

4. 具有2400个结点的完全二叉树的深度为(12)。

5. 若二叉树T 有n 个叶子结点,则T 必有(n-1)个度为2的结点。

6. 一棵深度为k 且有(2k -1)个结点的二叉树称为满二叉树。

7. 设对完全二叉树T 上的结点按层序进行连续编号,根结点的编号为1。

若编号为i 的结点有双亲,则其双亲的编号为(⎣⎦2i );若编号为i 的结点有左孩子,则其左孩子的编号为(2i );若编号为i 的结点有右孩子,则其右孩子的编号为(2i+1)。

8. 对树进行后序遍历等价于对由该树转换而得的二叉树进行(中)序遍历;对树进行先序遍历等价于对由该树转换而得的二叉树进行(先)序遍历。

9. 对森林进行后序遍历等价于对由该森林转换而得的二叉树进行(中)序遍历;对森林进行先序遍历等价于对由该森林转换而得的二叉树进行(先)序遍历。

【计算题】1. 画出所有先序遍历序列为ABCD 的二叉树。

解:A(#,B(#,C(#,D)))、A(#,B(#,C(D,#)))、A(#,B(C,D))、A(#,B(C(#,D),#))、A(#,B(C(D,#),#))、A(B,C(#,D))、A(B,C(D,#))、A(B(#,C),D)、A(B(C,#),D)、A(B(#,C(#,D)),#)、A(B(#,C(D,#)),#)、A(B(C,D),#)、A(B(C(#,D),#),#)、A(B(C(D,#),#),#)。

2. 一棵深度为h 的满k 叉树有如下性质:第h 层上的结点都是叶子结点,其余各层上的每个结点都有k 个孩子结点。

若按层序从1开始对全部结点编号,则:(1)第i 层上有多少个结点?(2)编号为p 的结点的第i 个孩子结点(若存在)的编号是多少?(3)编号为p 的结点的双亲结点(若存在)的编号是多少?解:(1)第1层有1个结点,第i 层结点数=第i-1层结点数*k (2≤i ≤h ),可得第i 层结点数为1-i k 个。

(2)当根结点以及前面的p-1个结点的孩子都编了号之后,才开始为结点p 的孩子编号,可得结点p 的第i 个孩子的编号为(1+(p-1)*k)+i 。

(3)若p=1,则为根结点,无双亲,否则可设双亲结点编号为s,由⑵可知结点s 的孩子结点的编号范围为(s-1)*k+2~(s-1)*k+k+1,即k k p s k p 21-+≤≤-,又由s 为整数,可得⎥⎦⎥⎢⎣⎢-+=k k p s 2(p ≠1)。

3. 一棵含n 个结点的k 叉树,可能达到的最大深度是多少,可能达到的最小深度是多少?。

解:可能达到的最大深度是n ,最小深度是⎡⎤)1)1((log +-k n k 。

4. 已知一棵度为k 的树中有n 1个度为1的结点,n 2个度为2的结点,…,n k 个度为k 的结点,则该树有多少叶子结点?解:1*)1(1+-∑=k i i n i 。

5. 设树T 中有n 个结点,且所有分支结点的度均为k ,试求T 中叶子结点个数。

解:k n n 1--。

6. 已知完全二叉树T 上共有900个结点,试求:(1)T 的高度;(2)T 中叶子结点个数;(3)T 中度为1的结点个数。

解:⑴10;⑵450;⑶1。

7. 按层序对深度为k 的完全二叉树中全部结点从1开始编号,试求叶子结点可能的最小编号。

解:122+-k 。

8. 由遍历序列画出二叉树/树/森林。

(1)设一棵二叉树的先序序列为ABCDEFG,中序序列为CBEDFAG,试画出该二叉树。

(2)设一棵二叉树的中序序列为DBGEHAFCI,后序序列为DBHEBFICA,试画出该二叉树。

(3)已知树的先序遍历序列为GFKDAIEBCHJ,树的后序遍历序列为DIAEKFCJHBG,试画出该树。

(4)已知森林的先序遍历序列为ABCDEFGHIJKL,后序遍历序列为CBEFDGAJIKLH,试画出该森林。

(5)已知二叉树的层序序列为ABCDEFGHIJ,中序序列为DBGEHJACIF,试画出该二叉树。

解:(1)(2)(3)(4)(5)9. 设有二叉树如下:(1)试写出该二叉树的先、中、后、层序遍历序列;(2)试画出对应的先、中、后序线索二叉树存储结构。

(2)先序线索二叉树:中序线索二叉树:后序线索二叉树:10. 试将如下森林转为二叉树。

解:11. 试将下图中的树转为二叉树。

解:12. 设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07、0.19、0.02、0.06、0.32、0.03、0.21、0.10,试为这8个字母设计赫夫曼编码。

解:设8个字母为a、b、c、d、e、f、g、h,以出现频率为权值可构造赫夫曼树如下,然后以左分支表0,右分支表1,由根结点到字母所在叶子结点的路径,可得对应01串,此即该字母的赫夫曼编码(a:1010b:00c:10000d:1001e:11f:10001g:01h:1011)。

【算法题】下列算法题中可能用到的类如下:public class BiTreeNode {//二叉结点类public String data; //数据元素是长度为1的大写字母串public BiTreeNode lchild;public BiTreeNode rchild;public BiTreeNode(String d){ data=d; lchild=null; rchild=null; }}//BiTreeNodepublic class BiTree {//二叉链表类private BiTreeNode root;public BiTree(){root=null;}}//BiTreepublic abstract class Stack{//抽象栈类public abstract boolean isEmpty();public abstract boolean isFull();public abstract boolean push(Object k);public abstract Object pop();public abstract Object get();}//Stackpublic class OnelinkNode{//链栈结点类public Object data;public OnelinkNode next;public OnelinkNode(Object obj){ data=obj; next=null; }}//OnelinkNodepublic class OnelinkStack extends Stack{//链栈类private OnelinkNode head;public OnelinkStack(){ head=new OnelinkNode(null); }…//Stack中各抽象方法的实现}//OnelinkStack1. 在BiTree类中添加符合如下要求的构造函数:(1)由二叉树的广义表表示串(例如“A(B,C(#,D))”)生成对应的二叉链表;(2)由二叉树的中序和后序遍历序列串生成对应的二叉链表;(3)由一个二叉链表复制生成一个值相同的二叉链表。

2. 在BiTree类中添加实现如下功能的方法:(1)分别统计二叉树中度为2、度为1和度为0的结点的个数;(2)设二叉树上各数据元素的值各不相同,试求值为"X"的数据元素所在的层次值;(3)求二叉树的高解:(5)在BiTreeNode类中加入:public void alte( ){if (lchild!=null) lchild.alte(); //处理左子树if (rchild!=null) rchild.alte(); //处理右子树BiTreeNode temp;//交换当前结点左、右子树temp=lchild;lchild=rchild;rchild=temp;}在BiTree类中加入:public void alte(){ if (root!=null) root.alte(); }3. 设完全二叉树的顺序存储结构类SqTree定义如下:public class SqTree{private String[ ] table;private int len;public SqTree(int maxsize){table=new String[maxsize];len=0;}//构造函数public String getElem(int i){if (i<0||i>=table.length) return null; else return table[i];}//getElempublic int getLen(){return len;}}//SqTree试设计BiTree类的构造函数,由完全二叉树的顺序存储生成对应的二叉链表。

相关文档
最新文档