作业-树和二叉树
第7章-树和二叉树第2讲-二叉树的概念

第一层
树的特 点?
第二层 第三层 第四层
复习:二、树的基本术语
1.结点A、D的度?树的度? 2;3;3; 2.根结点?分支结点?叶子结点? A;BCDE;GHIJF;
在二叉链中,空指针的个数?
b A
B∧
C
∧D
∧E∧
∧F∧
∧G∧
n个结点 2n个指针域 分支数为n-1 非空指针域有n-1个 空指针域个数 = 2n-(n-1) = n+1
n=7 空指针域个数=8
39/10
40/10
二叉树
当n=3,结果为ห้องสมุดไป่ตู้。
第n个Catalan数
41/23
有n个结点并且高度为n的不同形态的二叉树个数是多少? 该二叉树:有n层,每层一个结点,该结点可以
43/23
结点个数为n,树形可以唯一确定 叶子结点个数为n0,树形不能唯一确定 n为奇数时,n1=0; n为偶数时,n1=1。 n0=n2+1 高度h= log2(n+1),是n个结点高度最小的二叉树
44/23
含有60个叶子结点的二叉树的最小高度是多少?
在该二叉树中,n0=60,n2=n0-1=59,n=n0+n1+n2=119+n1。 当n1=0且为完全二叉树时高度最小。 此时高度h=log2(n+1)= log2120=7。
作为双亲结点的左孩子,也可以作为右孩子 这样的二叉树的个数=1×2×…×2=2n-1。
例如,当n=3时有22=4个这样的二叉树。
树与二叉树

树与二叉树————————————————————————————————作者:————————————————————————————————日期:作业要求:五:2、3六:2、3、6(1)、7、10七:1、2习题6一.名词解释(1)结点(2)结点的度(3)树的度(4)二叉树(5)哈夫曼树二.判断题(下列各题,正确的请在前面的括号内打√;错误的打ㄨ)( )(1)树结构中每个结点最多只有一个直接前趋。
(ﻩ)(2)完全二叉树一定是满二叉树。
3)由树转换成二叉树,其根结点的右子树一定为空。
(ﻩ)(()(4)在中序线索二叉树中,右线索若不为空,则一定指向其双亲。
( )(5)在前序遍历二叉树的序列中,任何结点的子树的所有结点都是直接跟在该结点之后。
()(6)一棵二叉树中序遍历序列的最后一个结点,必定是该二叉树前序遍历的最后一个结点。
( )(7)用一维数组来存储二叉树时,总是以前序遍历存储结点。
( )(8)已知二叉树的前序遍历和后序遍历不能惟一确定这棵二叉树,这是因为不知道根结点是哪一个。
( )(9)二叉树按某种顺序线索后,任一结点均有指向其前趋和后继的线索。
()(10)二叉树的前序遍历中,任意一个结点均处于其子树结点的前面。
三.填空题1.结点的度是。
2.叶子结点是结点。
3.树的度是。
4.树中结点的最大层次称为树的。
5.对于二叉树来说,第i层上至多有个结点。
6.深度为h的二叉树至多有个结点。
7.对于一棵具有n个结点的树,该树中所有结点的度数之和为:。
8.在一棵二叉树中,度为2 的结点有5 个,度为1 的结点有6 个,则叶子结点数有ﻫ个。
9.由一棵二叉树的前序序列和 序列可惟一确定这棵二叉树。
10.有20个结点的完全二叉树,编码为10的结点的父结点的编号是 。
11.有20个结点的完全二叉树,编码为10的结点的左子树结点的编号是 。
12.一棵含有n 个结点的完全二叉树,它的高度是 。
13.树的存储结构有: 。
14.哈夫曼树是带权路径长度 的二叉树。
第六章 树和二叉树 作业

以数据集{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) ; } }
数据结构树和二叉树习题及答案

习题六树和二叉树一、单项选择题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层上最多含有结点数为()I I-1 I-1 IA.2I B .2I-1-1 C .2I-1D .2I-110.一棵二叉树高度为h, 所有结点的度或为0,或为2,则这棵二叉树最少有()结点A.2h B .2h-1 C .2h+1 D .h+111.利用二叉链表存储树,则根结点的右指针是()。
树和二叉树——精选推荐

第6章 树和二叉树内容概要:本章主要介绍树,二叉树,最优二叉树的相关概念和操作,存储结构和相应的操作,并在综合应用设计中,给出了对应算法的C 语言实现。
教学目标1.理解各种树和森林与二叉树的相应操作。
2.熟练掌握二叉树的各种遍历算法,并能灵活运用遍历算法实现二叉树的其他操作。
3.熟练掌握二叉树和树的各种存储结构及其建立的算法。
4.掌握哈夫曼编码的方法。
5.通过综合应用设计,掌握各种算法的C 语言实现过程。
基本知识点:树和二叉树的定义、二叉树的存储表示、二叉树的遍历以及其它操作的实现、树和森林的存储表示、树和森林的遍历以及其它操作的实现、最优树和赫夫曼编码重点:二叉树的性质、二叉树的遍历及其应用,构造哈夫曼树。
难点:编写实现二叉树和树的各种操作的递归算法。
本章知识体系结构:课时安排:6个课时树的定义 树树的性质 树的逻辑表示法 树形表示法 树的存储结构 双亲存储结构 文氏表示法凹入表示法 括号表示法 孩子存储结构 孩子双亲存储结构二叉树二叉树的定义 二叉树的性质二叉树的逻辑表示法(采用树的逻辑表示法)二叉树的存储结构二叉树的顺序存储结构先序遍历 中序遍历 后序遍历二叉树的遍历 二叉树的链式存储结构(二叉链) 由先序序列和中序序列构造二叉树 由中序序列和后序序列构造二叉树二叉树的构造 二叉树的线索化 哈夫曼树二叉树和树之间的差别 二叉树与树、森林之间的转换二叉树和树课程数据结构教学教具多媒体课件学时2班级06网络教学日期/课时 /2课时教学单元第6章树和二叉树教学方法讲授(PPT)教学目标掌握树、二叉树的基本概念和术语,二叉树的性质教学重点二叉树的定义、二叉树的性质、链式存储结构教学难点二叉树的性质、链式存储二叉树的基本操作组织教学一、树的定义二、树的基本概念三、二叉树的定义、性质四、二叉树的顺序存储结构和链式存储结构五、小结作业复习本讲内容并预习下一讲内容课堂情况及课后分析课程数据结构教学教具多媒体课件学时2班级06网络教学日期/课时 /2课时教学单元第6章树和二叉树教学方法讲授(PPT)教学目标掌握二叉树遍历的三种方法及二叉树的基本操作教学重点二叉树的遍历算法教学难点中序与后序遍历的非递归算法组织教学一、复习二叉树的定义二、遍历二叉树的三种方法三、递归法遍历二叉树四、二叉树的基本操作五、总结作业复习本讲内容并预习下一讲内容课堂情况及课后分析课程数据结构教学教具多媒体课件学时2班级06网络教学日期/课时 /2课时教学单元第6章树和二叉树教学方法讲授(PPT)教学目标理解树与森林的转换,掌握哈夫曼树教学重点哈夫曼树教学难点树与森林的转换组织教学一、导入二、树与森林三、哈夫曼树四、小结作业习题6课堂情况及课后分析前面几章讨论的数据结构都属于线性结构,线性结构的特点是逻辑结构简单,易于进行查找、插入和删除等操作,可用于描述客观世界中具有单一前驱和后继的数据关系。
数据结构 第六章 树和二叉树作业及答案

第六章树和二叉树作业一、选择题(每题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. 树的路径长度:是从树根到每个结点的路径长度之和。
对结点数相同的树来说,路径长度最短的是 完全 二叉树。
树与二叉树典型例题讲解

A
F
B
J
E
F H
G
I J
例6.14
Huffman编码设计实例
已知某系统在通信联络中只可能出现8种字符,其概率分别为0.05, 0.29,0.07,0.08,0.14, 0.23,0.03,0.11,试设计Huffman编码。 解一:先构造Huffman树,再进行编码。 Huffman编码实现过程:以报文所用的不同字符为叶结点,以字符 出现频率为权重构造Huffman树;然后将树中结点指向其左孩子的 分支标“0”,指向其右孩子的分支标“1”;每个字符的编码即为 从根到每个叶子(字符)的路径上得到的0、1序列。这种对字符的 编码就是Huffman编码。
100
0 1
HC
42
0 1 0
58
1
0
1 2
0 1
1 0
1
0
3
1
1 1 0 0 0
1
1 1 0 1 1
1
1 0 1 1
0
1
23
0
19
1
29
1
29
1
11
0
8 5
14
0
15
1
4 5 6 7 8
1
3 Huffman树
7
8 Huffman编码
解二:利用Huffman编码算法实现。根据题意,取8个字符的权分别为 (5,29,7,8,14,23,3,11),n=8,则m=2*8-1=15,按上述 算法可构造一棵Huffman树,如下左图和右图分别Huffman树的初始 状态和终止状态。
a
b b d g e h i c ^ d c ^
f e ^ g
^ ^ ^
树和二叉树知识考点整理

树和二叉树知识考点整理●树的基本概念●树的定义●n个结点的有限集●n=0代表空树●满足条件●只有一个根的结点●其余结点是互不相交的有限集,每个集合本身是一棵树,是根的子树●树是一种递归的数据结构●树的根结点没有前驱,其余结点只有一个前驱●树中所有结点可以有零个或多个后驱●基本术语●双亲、兄弟、孩子、祖先●度:孩子个数●分支结点:度大于0●叶子结点:度为0●深度:从下往上;●高度:从上往下;●有序树:从左到右是有次序的●路径和路径长度:路径是从上往下的●森林:m棵互不相交的树的集合。
●树的基本性质●结点数=所有结点度数之和+1●度为m的树中第i层上至多有m的i-1次分个结点●高度为h的m叉树至多有(m^h-1)/(m-1)个结点●具有n个结点的m叉树的最小高度为「logm(n(m-1)+1)]●二叉树的概念●定义●一种树形结构,特点是每个结点至多只有两棵子树(即二叉树中不存在度大于2的结点)并且二叉树的子树有左右之分,次序不可颠倒●二叉树与度为2的有序树区别●度为2的可以有三个结点,二叉树可以是空树●度为2的有序树的孩子左右之分是根据另一个孩子而言的;二叉树无论有没有,都要确定左右●特殊的二叉树●满二叉树●树中每一层都含有最多的结点●完全二叉树●高度为h,有n个结点的二叉树,当且仅当,每个结点都与高度为h的满二叉树中的编号一一对应●二叉排序树●用途:可用于元素的排序、搜索●左子树上所有结点的关键字均小于根结点的关键字;右子树上所有结点的关键字均大于根结点的关键字;左子树和右子树又是一棵二叉排序树●二叉树的性质●非空二叉树上的叶子结点数等于度为2的结点树加1,即n0=n2+1●非空二叉树上第k层至多有2^(k-1)个结点●高度为h的二叉树至多有2^h-1个结点●具有n个结点的完全二叉树的高度为log2(n+1)取顶或者log2n取底+1●二叉树的存储结构●顺序存储结构●只适合存储完全二叉树,数组从0开始●链式存储结构●顺序存储的空间利用率太低●至少三个指针域:数据域、左指针域、右指针域●增加了指向父结点后,变为三叉链表的存储结构●在含有n个结点的二叉链表中,含有n+1个空链域●二叉树的遍历和线索二叉树●二叉树的遍历●先序遍历●根左右●应用:求树的深度●中序遍历●左根右●后序遍历●左右根●应用:求根到某结点的路径、求两个结点的最近公共祖先等●三个遍历时间复杂度都是O(n)●递归算法和非递归算法的转换●层次遍历●需要借助队列●步骤●二叉树根结点入队,然后出队,访问出队结点,若有左子树,左子树根结点入队●遍历右子树,有右子树,右子树根结点入队。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
树
(树根结点的高度为1)
一、选择题
3.以下说法错误的是( )。
A.完全二叉树上结点之间的父子关系可由它们编号之间的关系来表达B.在三叉链表上,二叉树的求双亲操作很容易实现
C.在二叉链表上,求根以及求左、右孩子等操作很容易实现
D.在二叉链表上,求双亲操作的时间性能很好
4.以下说法错误的是( )。
A.一般在哈夫曼树中,权值越大的叶子离根结点越近
B.哈夫曼树中没有度数为1的分支结点
C.若初始森林中共有n棵二叉树,最终求得的哈夫曼树共有2n-1个结点D.若初始森林中共有n棵二叉树,
进行2n-1次合并后才能剩下一棵最终的哈夫曼树
5.深度为6的二叉树最多有( )个结点。
A.64 B.63 C.32 D.31
6.将含有41个结点的完全二叉树从根结点开始编号,根为1号,
后面按从上到下、从左到右的顺序对结点编号,
那么编号为21的双亲结点编号为( )。
A.10B.11 C.41 D.20
7.设深度为k的二叉树上只有度为0和度为2的结点,
则这类二叉树上所含结点总数最少( )个。
A.k+l B.2k C.2k-1D.2k+1
8.下列说法中正确的是( )。
A.任何一棵二叉树中至少有一个结点的度为2
B.任何一棵二叉树中每个结点的度都为2
C.任何一棵二叉树中的每个结点的度肯定等于2
D.任何一棵二叉树中的每个结点的度都可以小于2
9.一棵二叉树满足下列条件:对任意结点,若存在左、右子树,
则其值都小于它的左子树上所有结点的值,
而大于右子树上所有结点的值。
现采用( )遍历方式就可以得到这棵二叉树所有结点的递减序列。
A.前序B.中序C.后序D.层次
10.如图6-1所示的二叉树的中序遍历序列是( )。
A.abcdgef B.dfebagc C.dbaefcg D.defbagc
11.已知某二叉树的后序遍历序列是deacb,中序遍历序列是deabc,
它的前序遍历序列是( )。
A.acbed B.baedc C.dceab D.cedba
12.某二叉树的前序遍历的结点访问顺序是abdgcefh,
中序遍历的结点访问顺序是dgbaechf,
则其后序遍历的结点访问顺序是( )。
A.bdgcefha B.gdbecfha C.bdgechfa D.gdbehfca
13.在图6-2中的二叉树中,( c )不是完全二叉树。
14.树最适合用来表示( )。
A.有序数据元素B.无序数据元素
C.元素之间具有分支层次关系的数据
D.元素之间无联系的数据
15.哈夫曼树的带权路径长度是( )。
A.所有结点权值之和
B.所有叶结点带权路径长度之和
C.带权结点的值
D.除根以外所有结点权值之和
16.设有一棵22个结点的完全二叉树,
那么整棵二叉树有( )个度为0的结点。
A.6 B.7 C.8 D.11
17.已知完全二叉树有26个结点,则整棵二叉树有( )个度为1的结点。
A.0 B.1 C.2 D.13
18.已知如图6-3所示的哈夫曼树,那么电文CDAA的编码是( )。
A.B.C.D.
19.在n个结点的完全二叉树中,对任一结点i(1≤i≤n),
i的左孩子可能是( )。
A.i/2 B.2i+1 C.2i D.都不是
20.已给出图6-3所示的二叉树,
A,B,C,D的权值分别为7,5,2,4,
则该树的带权路径长度为( )。
A.46 B.36 C.35 D.都不是
21.下列叙述中正确的是( )。
A.二叉树是度为2的有序树
B.二叉树中结点只有一个孩子时无左右之分
C.二叉树中必有度为2的结点
D.二叉树中结点最多有两棵子树,并且有左右之分
22.图6-4所示的几种结构中属于树形结构的是( b)。
二、判断题(标红色的是错误的)
2.树和二叉树之间最主要的差别是:
二叉树的结点的子树要区分为左右子树,
即使在结点只有一棵子树的情况下
也要明确指出该子树是左子树还是右子树。
3.若有一个结点是某二叉树子树的中序遍历序列中的最后一个结点,则它必须是该子树的前序遍历序列中的最后一个结点。
4.二叉树具有两个子女的父结点,在中序遍历序列中,
它的后继结点最多只能有一个子女。
5.在二叉树中,具有一个子女的父结点,
在中序遍历中,它没有后继的子女结点。
6.已知二叉树的前序遍历和后序遍历序列不能惟一地确定这棵树。
三、填空题
1.树(及一切树形结构)是一种_分支层次_____结构。
在树中,
____根_____结点没有直接前驱。
对树上任一结点x来说,
x是它的任一子树的根结点惟一的___双亲_____。
2.一棵树上的任何结点(不包括根本身)称为根的___子孙_______。
若B是A的子孙,则称A是B的_____祖先_____。
3.二叉树第i(i>0)层上至多有___2i-1_______个结点。
4.深度为k(k>0)的二叉树至多有_____2k-1_____个结点。
5.对任何二叉树,若度为2的节点数为n2,则叶子数n0=__n2+1________。
6.满二叉树上各层的节点数已达到了二叉树可以容纳的___最大值______。
满二叉树也是___完全_______二叉树,但反之不然。
7.具有n个结点的完全二叉树的深度为___log2n 取整+1_______。
8.二叉树通常有______顺序_______存储结构
和____链式______存储结构两类存储结构。
9.每个二叉链表还必须有一个指向_根_______结点的指针,
该指针具有标识二叉链表的作用。
10.对二叉链表的访问只能从_____根______指针开始。
11.二叉树有不同的链式存储结构,其中最常用的是___二叉链表_______
与_三叉链表_________。
12.具有100个结点的完全二叉树的深度是__7_________。
13.在_____先序_____遍历二叉树的序列中,任何结点的子树上的
所有结点都是直接跟在该结点之后。
14.若一棵二叉树的叶子数为n,
则该二叉树中左、右子树皆非空的结点个数为___n-1_______。
15.一棵树的形状如图6-5所示,
它的根结点是__A_______,叶结点是__E,J,K,G,L,O,P,Q,R,N,I________,结点H的度是___3______,这棵树的度是___4_____,
这棵树的深度是___5______,结点F的儿子结点是___J,K____,
结点G的父结点是___C______。
18.含有2n个结点的二叉树高度至少是_n+1__________,
至多是__2n _______(仅含根结点的二叉树高度为1)。
四、应用题
1.分别写出图6-7所示二叉树的前序、中序和后序序列。
答:前序:ABCDEF、中序:CBEFDA和后序:CFEDBA
2.已知一棵二叉树的中序序列和后序序列分别为BDCEAFHG和DECBHGFA,试画出这棵二叉树,并写出其前序遍历序列。
答:前序遍历序列:ABCDEFGH
3.设某密码电文由8个字母组成,a,b,c,d,e,f,g,h
每个字母在电文中的出现频率分别是
7,19,2,6,32,3,21,10,
试为这8个字母设计相应的哈夫曼编码。
答:略.
8.对于一个关键字序列10, 18, 3, 8, 12, 2, 7, 3,生成一个二叉排序树,并写出中序遍历该二叉排序树的结果。
答:略.。