第六章 树和二叉树D
- 格式:ppt
- 大小:604.51 KB
- 文档页数:24
第6章树和二叉树6.1知识点: 树和二叉树的基本概念一、填空题1.高度为h,度为m的树中至少有___________个结点,至多有______________个结点。
2.树的结点是由及若干指向其子树的组成;结点拥有的子树数称为;度为0的结点称为;度不为0的结点成为;树中结点的最大度数称为;树的最大层次称为_____________。
3.对于一棵具有n个结点的树,该树中所有结点的度数之和为___________。
4.如果结点A有3个兄弟结点,而且B是A的双亲,则B的度是___________。
5.二叉树是另一种树形结构,它的特点是。
6.一颗度数为k且有2k-1个结点的二叉树称为。
7.深度为k,且有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树中编号从1到n的结点一一对应时,称之为。
8.一棵深度为6的满二叉树有个分支结点和个叶子。
9.一棵具有257个结点的完全二叉树,它的深度为。
10.设一棵完全二叉树具有1000个结点,则此完全二叉树有个叶子结点,有个度为2的结点,有个结点只有非空左子树,有个结点只有非空右子树。
11.由3个结点可以构成__________种形态的的二叉树,可以构成种形态的树。
12.将含有82个结点的完全二叉树从根结点开始顺序编号,根结点为第1号,其他结点自上向下,同一层自左向右连续编号。
则第40号结点的双亲结点的编号为。
13.一棵高度为5的完全二叉树中,最多包含有____________个结点。
14.一棵具有n个结点的二叉树,若它有n0个叶子结点,则该二叉树上度为1的结点n1=____________。
15.在高度为h(h>=0)的二叉树中至多可以有__________个结点,至少可以有___________个结点。
16.n个结点的二叉树最大高度是____________,最小高度是_______________。
二、选择题1.( )不含任何结点的空树()。
A.是一棵树B.是一棵二叉树C.是一棵树也是一棵二叉树D.既不是树也不是二叉树2.()一棵度为4的树中度为1、2、3、4的结点个数为4、3、2、1,则该树的结点总数为()。
一、基础知识题6.1设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1,求树T中的叶子数。
【解答】设度为m的树中度为0,1,2,…,m的结点数分别为n0, n1, n2,…, nm,结点总数为n,分枝数为B,则下面二式成立n= n0+n1+n2+…+nm (1)n=B+1= n1+2n2 +…+mnm+1 (2)由(1)和(2)得叶子结点数n0=1+即: n0=1+(1-1)*4+(2-1)*2+(3-1)*1+(4-1)*1=86.2一棵完全二叉树上有1001个结点,求叶子结点的个数。
【解答】因为在任意二叉树中度为2 的结点数n2和叶子结点数n0有如下关系:n2=n0-1,所以设二叉树的结点数为n, 度为1的结点数为n1,则n= n0+ n1+ n2n=2n0+n1-11002=2n0+n1由于在完全二叉树中,度为1的结点数n1至多为1,叶子数n0是整数。
本题中度为1的结点数n1只能是0,故叶子结点的个数n0为501.注:解本题时要使用以上公式,不要先判断完全二叉树高10,前9层是满二叉树,第10层都是叶子,……。
虽然解法也对,但步骤多且复杂,极易出错。
6.3 一棵124个叶结点的完全二叉树,最多有多少个结点。
【解答】由公式n=2n0+n1-1,当n1为1时,结点数达到最多248个。
6.4.一棵完全二叉树有500个结点,请问该完全二叉树有多少个叶子结点?有多少个度为1的结点?有多少个度为2的结点?如果完全二叉树有501个结点,结果如何?请写出推导过程。
【解答】由公式n=2n0+n1-1,带入具体数得,500=2n0+n1-1,叶子数是整数,度为1的结点数只能为1,故叶子数为250,度为2的结点数是249。
若完全二叉树有501个结点,则叶子数251,度为2的结点数是250,度为1的结点数为0。
6.5 某二叉树有20个叶子结点,有30个结点仅有一个孩子,则该二叉树的总结点数是多少。
第六章树和二叉树试题一、单项选择题1.树中所有结点的度等于所有结点数加()。
A. 0B. 1C. -1D. 22.在一棵树中,()没有前驱结点。
A. 分支结点B. 叶结点C. 根结点D. 空结点3.在一棵二叉树的二叉链表中,空指针域数等于非空指针域数加()。
A. 2B. 1C. 0D. -14.在一棵具有n个结点的二叉树中,所有结点的空子树个数等于()。
A. nB. n-1C. n+1D. 2*n5.在一棵具有n个结点的二叉树的第i层上(假定根结点为第0层,i大于等于0而小于等于树的高度),最多具有()个结点。
A. 2iB. 2i+1C. 2i-1D. 2n6.在一棵高度为h(假定根结点的层号为0)的完全二叉树中,所含结点个数不小于()。
A. 2h-1B. 2h+1C. 2h-1D. 2h7.在一棵具有35个结点的完全二叉树中,该树的高度为()。
假定空树的高度为-1。
A. 5B. 6C. 7D. 88.在一棵具有n个结点的完全二叉树中,分支结点的最大编号为()。
假定树根结点的编号为0。
A. ⎣(n-1)/2⎦B. ⎣n/2⎦C. ⎡n/2⎤D. ⎣n/2⎦ -19.在一棵完全二叉树中,若编号为i的结点存在左孩子,则左子女结点的编号为()。
假定根结点的编号为0A. 2iB. 2i-1C. 2i+1D. 2i+210.在一棵完全二叉树中,假定根结点的编号为0,则对于编号为i(i>0)的结点,其双亲结点的编号为()。
A. ⎣(i+1)/2⎦B. ⎣(i-1)/2⎦C. ⎣i/2⎦D. ⎣i/2⎦-111.在一棵树的左子女-右兄弟表示法中,一个结点的右孩子是该结点的()结点。
A. 兄弟B. 子女C. 祖先D. 子12.在一棵树的静态双亲表示中,每个存储结点包含()个域。
A. 1B. 2C. 3D. 413.已知一棵二叉树的广义表表示为a (b (c), d (e ( , g (h) ), f ) ),则该二叉树的高度为()。
第六章树和二叉树(下载后用阅读版式视图或web版式可以看清)习题一、选择题1.有一“遗传”关系:设x是y的父亲,则x可以把它的属性遗传给y。
表示该遗传关系最适合的数据结构为( )。
A.向量B.树 C图 D.二叉树2.树最合适用来表示( )。
A.有序数据元素 B元素之间具有分支层次关系的数据C无序数据元素 D.元素之间无联系的数据3.树B的层号表示为la,2b,3d,3e,2c,对应于下面选择的( )。
A. la (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.4..专业知识编辑整理..11.在一棵具有35个结点的完全二叉树中,该树的深度为( )。
第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章树和二叉树习题解答一、下面是有关二叉树的叙述,请判断正误(每小题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。
(注:用⎣ log2(n) ⎦+1= ⎣ 8.xx ⎦+1=94.【全国专升本统考题】设一棵完全二叉树有700个结点,则共有350个叶子结点。
【课后习题】第6章树和二叉树网络工程2010级()班学号:姓名:一、填空题(每空1分,共16分)1.从逻辑结构看,树是典型的。
2.设一棵完全二叉树具有999个结点,则此完全二叉树有个叶子结点,有个度为2的结点,有个度为1的结点。
3.由n个权值构成的哈夫曼树共有个结点。
4.在线索化二叉树中,T所指结点没有左子树的充要条件是。
5.在非空树上,_____没有直接前趋。
6.深度为k的二叉树最多有结点,最少有个结点。
7.若按层次顺序将一棵有n个结点的完全二叉树的所有结点从1到n编号,那么当i为且小于n时,结点i的右兄弟是结点,否则结点i没有右兄弟。
8.N个结点的二叉树采用二叉链表存放,共有空链域个数为。
9.一棵深度为7的满二叉树有___ ___个非终端结点。
10.将一棵树转换为二叉树表示后,该二叉树的根结点没有。
11.采用二叉树来表示树时,树的先根次序遍历结果与其对应的二叉树的遍历结果是一样的。
12.一棵Huffman树是带权路径长度最短的二叉树,权值的外结点离根较远。
二、判断题(如果正确,在对应位置打“√”,否则打“⨯”。
每题0.5分,共5分)1.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i-1个结点。
2.二叉树的前序遍历并不能唯一确定这棵树,但是,如果我们还知道该二叉树的根结点是那一个,则可以确定这棵二叉树。
3.一棵树中的叶子结点数一定等于与其对应的二叉树中的叶子结点数。
4.度≤2的树就是二叉树。
5.一棵Huffman树是带权路径长度最短的二叉树,权值较大的外结点离根较远。
6.采用二叉树来表示树时,树的先根次序遍历结果与其对应的二叉树的前序遍历结果是一样的。
7.不存在有偶数个结点的满二叉树。
8.满二叉树一定是完全二叉树,而完全二叉树不一定是满二叉树。
9.已知二叉树的前序遍历顺序和中序遍历顺序,可以惟一确定一棵二叉树;10.已知二叉树的前序遍历顺序和后序遍历顺序,不能惟一确定一棵二叉树;三、单项选择(请将正确答案的代号填写在下表对应题号下面。
数据结构题第六章树和⼆叉树简答题1、有⼀棵树的括号表⽰为A(B,C(E,F(G)),D),回答下⾯的问题:这棵树的根结点是谁?这棵树的叶⼦结点是什么?结点C的度是多少?这棵树的度是多少?这棵树的深度是多少?结点C的孩⼦结点是哪些?结点C的双亲结点是谁?2、若⼀棵度为4的树中度为1,2,3,4的结点个数分别是4,3,2,2,则该树中叶⼦结点的个数是多少?总结点个数是多少?3、⼀棵⾼度为h的完全k次数,如果按照层次⾃上向下、⾃左向右的顺序从1开始对全部结点编号,试问:最多有多少个结点?最少有多少个结点?编号为q的结点的第i个孩⼦结点的编号是多少?4、若⼀棵⼆叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数为结点的总个数为5、⼀棵完全⼆叉树有1001个结点,其中叶⼦结点的个数为6、⼀棵⾼度为h的完全⼆叉树⾄少有个结点。
7、⼀棵⾼度为5的完全⼆叉树⾄多有个结点。
8、设⾼度为h的⼆叉树上只有度为0和度为2的结点,则此类⼆叉树⾄少包含个结点。
9、⼀个具有1025个结点的⼆叉树的⾼度h为10、在⼀棵完全⼆叉树中,结点个数为n,则编号最⼤的分⽀结点的编号为11、⼀棵⼆叉树的先序遍历为ABCDEF,中序遍历为CBAEDF,则后序遍历为12、⼀棵⼆叉树的先序遍历为ABCDEFG,它的中序遍历可能为A.CABDEFGB. ABCDEFGC.DACEFBGD.ADCFEGB思考:⼆叉树的先序和中序遍历相同的条件是?⼆叉树的后序和中序遍历相同的条件是?13、⼀棵⼆叉树的后序遍历为DABEC,中序遍历为DEBAC,则先序遍历为14、⼀棵⼆叉树的先序遍历为EFHIGJK,中序遍历为HFIEJKG,则该⼆叉树根结点的右孩⼦为16、根据使⽤频率为5个字符设计的赫夫曼编码不可能的是A.111,110,10,01,00B.000,001,010,011,1C.100,11,10,1,0D.001,000,01,11,1017、根据使⽤频率为5个字符设计的赫夫曼编码不可能的是A. 000,001,010,011,1B.0000,0001,001,01,1C. 000,001,01,10,11D.00,100,101,110,11118、设有13个值,⽤它们组成⼀棵赫夫曼树,则该赫夫曼树共有个结点。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////第六章树和二叉树////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 下面呢,我们就讨论第六章、树和二叉树。
那么我们回忆一下数据结构四大类。
第一类,线性结构,除了广义表以外,我们都讨论完了。
现在我们开始讨论第二大类,树形结构,在树形结构里面呢,我们主要讨论两种结构。
一类树,一类二叉树(线性结构里头我们讨论了什么?)。
首先,我们先看树的数据类型定义。
那先看数据对象D:具有相同特性的数据元素的集合,这就是它的数据对象。
数据元素之间是一个什么样的关系呢,我们用下面这段话来描述。
如果数据对象是一个空集,我们称之为空树。
从这里看得出来,所有的数据结构都这样一个空的这样一个结构。
空串、空表等等。
空树的意思是一个数据元素都没有。
否则的话,如果这个集合不是一个空集的话,那么在这个数据结构里面一定存在一个成为根的数据元素root,而且这个数据元素一定是唯一的。
就是说,一定存在,而且唯一。
那么就是说除了空树以外,如果数据集合里面只有一个数据元素的话,那么这个数据元素,就是这个树的根。
如果说这个数据集合里面的元素个数大于1的话,其余个结点呢,我们一定可以给它分成m 个子集。
这些子集互不相交。
并且每个子集本身呢,又是一棵符合上面定义的树。
这些子集是树,而且称之为根的子树。
我们看一个例子,(画图)ABCDEFGIJ 这是一个树,当然它不是空树,这个树呢是9个数据元素的集合。
习题六树和二叉树一、单项选择题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.非空12.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为()。
严蔚敏《数据结构(c语言版>习题集》答案第六章树和二叉树文库.txt师太,你是我心中的魔,贫僧离你越近,就离佛越远……初中的体育老师说:谁敢再穿裙子上我的课,就罚她倒立。
第六章树和二叉树6.33int Is_Descendant_C(int u,int v>//在孩子存储结构上判断u是否v的子孙,是则返回1,否则返回0{if(u==v> return 1。
else{if(L[v]>if (Is_Descendant(u,L[v]>> return 1。
if(R[v]>if (Is_Descendant(u,R[v]>> return 1。
//这是个递归算法}return 0。
}//Is_Descendant_C6.34int Is_Descendant_P(int u,int v>//在双亲存储结构上判断u是否v的子孙,是则返回1,否则返回0{for(p=u。
p!=v&&p。
p=T[p]>。
if(p==v> return 1。
else return 0。
}//Is_Descendant_P6.35这一题根本不需要写什么算法,见书后注释:两个整数的值是相等的.6.36int Bitree_Sim(Bitree B1,Bitree B2>//判断两棵树是否相似的递归算法{if(!B1&&!B2> return 1。
else if(B1&&B2&&Bitree_Sim(B1->lchild,B2->lchild>&&Bitree_Sim(B1->rchild,B2->rchild>>return 1。
else return 0。
}//Bitree_Sim6.37void PreOrder_Nonrecursive(Bitree T>//先序遍历二叉树的非递归算法{InitStack(S>。