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

数据结构-习题-第六章-树和二叉树E F D G A B / + + * - C * 第六章 树和二叉树一、选择题1.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-,其前缀形式为( )A .-A+B*C/DE B. -A+B*CD/EC .-+*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 .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 .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-n B.m-n-1 C.n+1 D.条件不足,无法确定【南京理工大学2000 一、17(1.5分)】7. 树是结点的有限集合,它( (1))根结点,记为T。
其余结点分成为m(m>0)个((2))的集合T1,T2,…,Tm,每个集合又都是树,此时结点T称为Ti的父结点,Ti称为T的子结点(1≤i≤m)。
数据结构-第6章 树和二叉树---4. 树和森林(V1)

6.4.1 树的存储结构
R AB C D EG F
R⋀
A
⋀D
⋀B
⋀E ⋀
C⋀
⋀G
⋀F ⋀
6.4.2 树、森林和二叉树的转换
1. 树转换为二叉树 将树转换成二叉树在“孩子兄弟表示法”中已 给出,其详细步骤是: ⑴ 加线。在树的所有相邻兄弟结点之间加一 条连线。 ⑵ 去连线。除最左的第一个子结点外,父结点 与所有其它子结点的连线都去掉。 ⑶ 旋转。将树以根结点为轴心,顺时针旋转 450,使之层次分明。
B C
D
A E
L HK
M
技巧:无左孩子 者即为叶子结点
6.4.3 树和森林的遍历
1. 树的遍历 由树结构的定义可知,树的遍历有二种方法。 ⑴ 先序遍历:先访问根结点,然后依次先序 遍历完每棵子树等。价于对应二叉树的先序遍历
⑵ 后序遍历:先依次后序遍历完每棵子树,然 后访问根结点。等价于对应二叉树的中序遍历
0 R -1 1A 0 2B 0 3C 0
}Ptree ; R
4D 1 5E 1
AB C
6F 3
7G 6
DE
F
8H 6
9I 6
G H I 10~MAX_Size-1 ... ...
6.4.1 树的存储结构
2. 孩子表示法
每个结点的孩子结点构成一个单链表,即有n 个结点就有n个孩子链表;
n个孩子的数据和n个孩子链表的头指针组成一 个顺序表; 结点结构定义: 顺序表定义:
typedef struct PTNode { ElemType data ;
《数据结构与算法》第六章-树与二叉树习题

《数据结构与算法》第二部分习题精选一、下面是有关二叉树的叙述,请判断正误()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的满二叉树有个分支结点和个叶子。
3.一棵具有257个结点的完全二叉树,它的深度为。
4.设一棵完全二叉树有700个结点,则共有个叶子结点。
5. 设一棵完全二叉树具有1000个结点,则此完全二叉树有个叶子结点,有个度为2的结点,有个结点只有非空左子树,有个结点只有非空右子树。
6.一棵含有n个结点的k叉树,可能达到的最大深度为,最小深度为。
7. 二叉树的基本组成部分是:根(N)、左子树(L)和右子树(R)。
因而二叉树的遍历次序有六种。
最常用的是三种:前序法(即按N L R次序),后序法(即按次序)和中序法(也称对称序法,即按L N R次序)。
这三种方法相互之间有关联。
若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是。
8.中序遍历的递归算法平均空间复杂度为。
9.用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度是。
《数据结构》习题汇编06第六章树和二叉树试题

第六章树和二叉树试题一、单项选择题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 ) ),则该二叉树的高度为()。
《数据结构》期末复习题及参考答案 - 第6章 树和二叉树【HSH2013级】给学生

《数据结构》期末复习题及参考答案 - 第6章 树和二叉树一、 选择题1、在二叉树的第I 层(I≥1)上最多含有结点数为( )A. 2IB. 2I-1-1C. 2I-1D. 2I -12、深度为6的二叉树最多有( )个结点A .64 B.63 C.32 D.313、一棵树高为K 的完全二叉树至少有( )个结点A.2k –1B.2k-1 –1C.2k-1D.2 k4、有关二叉树下列说法正确的是( )A. 二叉树的度为2B. 一棵二叉树的度可以小于2C. 二叉树中至少有一个结点的度为2D. 二叉树中任何一个结点的度都为25、n 个结点的线索二叉树上含有的线索数为( )A. 2nB. n -lC. n +lD. n6、线性表和树的结构区别在于( )A .前驱数量不同,后继数量相同B .前驱数量相同,后继数量不同C .前驱和后继的数量都相同D .前驱和后继的数量都不同7、已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-,则其前缀形式为( )A .-A+B*C/DE B. -A+B*CD/E C .-+*ABC/DE D. -+A*BC/DE8、设有一表示算术表达式的二叉树(见下图),它所表示的算术表达式是( )A. A*B+C/(D*E)+(F-G)B. (A*B+C)/(D*E)+(F-G)9、一棵具有 n 个结点的完全二叉树的树高度(深度)(符号⎣⎦x 表示取不大于x 的最大整数)是( )10、利用二叉链表存储树,则根结点的右指针是()。
11、已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为()。
12、某二叉树中序序列为A,B,C,D,E,F,G,后序序列为B,D,C,A,F,G,E 则前序序列是:A.E,G,F,A,C,D,B B.E,A,C,B,D,G,F C.E,A,G,C,F,B,D D.上面的都不对13、若前序遍历二叉树的结果为序列A、B、C,则有_________棵不同的二叉树可以得到这一结果。
数据结构 第六章 树和二叉树作业及答案

第六章树和二叉树作业一、选择题(每题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. 树的路径长度:是从树根到每个结点的路径长度之和。
对结点数相同的树来说,路径长度最短的是 完全 二叉树。
数据结构课后习题(第6章)

【课后习题】第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.已知二叉树的前序遍历顺序和后序遍历顺序,不能惟一确定一棵二叉树;三、单项选择(请将正确答案的代号填写在下表对应题号下面。
云大《数据结构》课程教学课件-第6章 树和二叉树(147P)_OK

^d ^ ^ e ^ 三叉链表
3)二叉链表是二叉树最常用的存储结构。还有其它链接方 法,采用何种方法,主要取决于所要实施的各种运算频度。
例:若经常要在二叉树中寻找某结点的双亲时,可在每个结 点上再加一个指向其双亲的指针域parent,称为三叉链表。
lchild data parent rchild
2021/8/16
2021/8/16
9
6.2 二 叉 树
6.2.1 二叉树的概念
一、二叉树的定义: 二叉树(Binary Tree)是n(n>=0)个结点的有限集,它或者是 空集(n=0)或者由一个根结点和两棵互不相交的,分别称 为根的左子树和右子树的二叉树组成。 可以看出,二叉树的定义和树的定义一样,均为递归定 义。
A
集合3
集合1
BCD
EF
G
集合2
2021/8/16
3
2、树的表示方法 1)树形图法
A
BCD
EF
G
2)嵌套集合法
3)广义表形式 ( A(B, C(E,F), D(G) )
4)凹入表示法
2021/8/16
A B
D
CG
EF
A B C E DF G
4
3、 树结构的基本术语
1)结点的度(Degree):为该结点的子树的个数。 2)树的度:为该树中结点的最大度数。
7)路径(Path):若树中存在一个结点序列k1,k2,…,kj,使得ki是 ki+1的双亲(1<=i<j),则称该结点序列是从ki到kj一条路径 (Path)
路径长度:路径的长度为j-1,其为该路径所经过的边的数 目。
A
BCD
EF
G
《数据结构》复习题-第6章-树和二叉树

《数据结构》复习题-第6章-树和⼆叉树第六章树和⼆叉树⼀、选择题1.已知⼀算术表达式的中缀形式为 A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( )A.-A+B*C/DEB. -A+B*CD/EC.-+*ABC/DED. -+A*BC/DE【北京航空航天⼤学 1999 ⼀、3 (2分)】4. 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶⼦数为()A.5 B.6 C.7 D.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-n B.m-n-1 C.n+1 D.条件不⾜,⽆法确定【南京理⼯⼤学2000 ⼀、17(1.5分)】8.若⼀棵⼆叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A.9 B.11 C.15 D.不确定【北京⼯商⼤学2001⼀.7(3分)】9.在⼀棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为()个A.4 B.5 C.6 D.7 【哈尔滨⼯业⼤学 2001⼆、2 (2分)】10.设森林F中有三棵树,第⼀,第⼆,第三棵树的结点个数分别为M1,M2和M3。
与森林F对应的⼆叉树根结点的右⼦树上的结点个数是()。
【北⽅交通⼤学 2001 ⼀、16 (2分)】A.M1 B.M1+M2 C.M3 D.M2+M311.具有10个叶结点的⼆叉树中有()个度为2的结点,【北京航空航天⼤学2000 ⼀、5(2分)】A.8 B.9 C.10 D.ll16. 有关⼆叉树下列说法正确的是()【南京理⼯⼤学 2000 ⼀、11 (1.5分)】A.⼆叉树的度为2 B.⼀棵⼆叉树的度可以⼩于2 C.⼆叉树中⾄少有⼀个结点的度为2 D.⼆叉树中任何⼀个结点的度都为217.⼆叉树的第I层上最多含有结点数为()【中⼭⼤学1998⼆、7 (2分)】【北京理⼯⼤学 2001 六、5(2分)】A.2I B. 2I-1-1 C. 2I-1 D.2I -118. ⼀个具有1025个结点的⼆叉树的⾼h为()【南京理⼯⼤学 1999 ⼀、19 (2分)】A.11 B.10 C.11⾄1025之间 D.10⾄1024之间19.⼀棵⼆叉树⾼度为h,所有结点的度或为0,或为2,则这棵⼆叉树最少有( )结点A.2h B.2h-1 C.2h+1 D.h+1 【南京理⼯⼤学2001⼀、11(1.5分)】22.深度为h的满m叉树的第k层有()个结点。
数据结构(本)单元6树和二叉树单元测试

数据结构(本)单元6树和二叉树单元测试(题+答案)题目1、假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为()。
A. 15B. 16C. 47D. 17题目2、已知某二叉树的后续遍历序列是dabec,中序遍历是debac,则它的先序遍历序列是()。
A. cedbaB. decabC. acbedD. deabc题目3、二叉树第k层上最多有()个结点。
A.B.C.D. 2k题目4、二叉树的深度为k,则二叉树最多有()个结点。
A.B.C. 2kD. 2k-1题目5、设某一二叉树先序遍历为abdec,中序遍历为dbeac,则该二叉树后序遍历的顺序是()。
A. debacB. debcaC. abedcD. abdec题目6、设某一二叉树中序遍历为badce,后序遍历为bdeca,则该二叉树先序遍历的顺序是()。
A. debacB. decabC. adbecD. abcde题目7、树最适合于用来表示()。
A. 元素之间有包含和层次关系的数据B. 元素之间无前驱和后继关系的数据C. 顺序结构的数据D. 线性结构的数据题目8、一棵非空的二叉树,先序遍历与后续遍历正好相反,则该二叉树满足()。
A. 任意二叉树B. 无左孩子C. 只有一个叶子结点D. 无右孩子题目9、设a,b为一棵二叉树的两个结点,在后续遍历中,a在b前的条件是()。
A. a在b左方B. a在b右方C. a在b上方D. a在b下方题目10、权值为{1,2,6,8}的四个结点构成的哈夫曼树的带权路径长度是()。
A. 29B. 18C. 19D. 28题目11、如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径长度最小,则该树称为()。
A. 哈夫曼树B. 平衡二叉树C. 二叉树D. 完全二叉树题目12、下列有关二叉树的说法正确的是()。
A. 完全二叉树中,任何一个结点的度,或者为0或者为2B. 二叉树中度为0的结点的个数等于度为2的结点的个数加1C. 二叉树的度是2D. 二叉树中结点个数必大于0题目13、二叉树是非线性数据结构,所以()。
数据结构第六章树和二叉树习题及答案

习题六树和二叉树一、单项选择题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,则后序遍历的结果为()。
数据结构第六章:树和二叉树

性质2:深度为 的二叉树至多有 个结点(k≥ 性质 :深度为k的二叉树至多有2 k 1 个结点 ≥1)
证明:由性质 ,可得深度为k 证明:由性质1,可得深度为 的二叉树最大结点数是
(第i层的最大结点数 ) = ∑ 2 i 1 = 2 k 1 ∑
i =1 i =1
k
k
10
性质3:对任何一棵二叉树 ,如果其终端结点数(即 性质 :对任何一棵二叉树T,如果其终端结点数 即 叶节点)为 度为2的结点数为 的结点数为n 叶节点 为n0,度为 的结点数为 2,则n0=n2+1 证明: 为二叉树 中度为1的结点数 为二叉树T中度为 证明:n1为二叉树 中度为 的结点数 因为:二叉树中所有结点的度均小于或等于2 因为:二叉树中所有结点的度均小于或等于 所以:其结点总数n=n0+n1+n2 所以:其结点总数 又二叉树中,除根结点外, 又二叉树中,除根结点外,其余结点都只有一个 分支进入; 分支进入; 为分支总数, 设B为分支总数,则n=B+1 为分支总数 又:分支由度为1和度为 的结点射出,∴B=n1+2n2 分支由度为 和度为2的结点射出, 和度为 的结点射出 于是, 于是,n=B+1=n1+2n2+1=n0+n1+n2 ∴n0=n2+1
7
结点A的度:3 结点 的度: 的度 结点B的度:2 结点 的度: 的度 结点M的度:0 结点 的度: 的度 结点A的孩子: , , 结点 的孩子:B,C,D 的孩子 结点B的孩子 的孩子: , 结点 的孩子:E,F 树的度: 树的度:3 E K 结点A的层次: 结点 的层次:1 的层次 结点M的层次 的层次: 结点 的层次:4 L B F A C G H M
数据结构 第六章 树和二叉树

F
G
H
M
I
J
结点F,G为堂兄弟 结点A是结点F,G的祖先
5
树的基本操作
树的应用很广,应用不同基本操作也不同。下面列举了树的一些基本操作: 1)InitTree(&T); 2)DestroyTree(&T); 3)CreateTree(&T, definition); 4)ClearTree(&T); 5)TreeEmpty(T); 6)TreeDepth(T); 7) Root(T); 8) Value(T, &cur_e); 9) Assign(T, cur_e, value); 10)Paret(T, cur_e); 11)LeftChild(T, cur_e); 12)RightSibling(T, cur_e); 13)InsertChild(&T, &p, i, c); 14)DeleteChild(&T,&p, i); 15)TraverseTree(T, Visit( ));
1
2 4 8 9 10 5 11 12 6 13 14 3 7 15 4 6 2
1
3
5 7
证明:设二叉树中度为1的结点个数为n1 根据二叉树的定义可知,该二叉树的结点数n=n0+n1+n2
又因为在二叉树中,度为0的结点没有孩子,度为1的结点有1 个孩子,度为2的结点有2个结孩子,故该二叉树的孩子结点 数为 n0*0+n1*1+n2*2(分支数) 而一棵二叉树中,除根结点外所有都为孩子结点,故该二叉 树的结点数应为孩子结点数加1即:n=n0*0+n1*1+n2*2+1
文件夹1
文件夹n
数据结构zl-第6章树4-1

E K
有序树——结点各子树从左至右有序,不能互换 结点各子树从左至右有序, 有序树 结点各子树从左至右有序 左为第一) (左为第一) 无序树——结点各子树可互换位置. 结点各子树可互换位置. 无序树 结点各子树可互换位置
15
A
2.
若干术语
E K
B F L
C G H M
D I J
双亲——即上层的那个结点 直接前驱 即上层的那个结点(直接前驱 双亲 即上层的那个结点 直接前驱) 孩子——即下层结点的子树的根 直接后继 即下层结点的子树的根(直接后继 孩子 即下层结点的子树的根 直接后继) 兄弟——同一双亲下的同层结点(孩子之间互称兄弟) 同一双亲下的同层结点( 兄弟 同一双亲下的同层结点 孩子之间互称兄弟) 堂兄弟——即双亲位于同一层的结点(但并非同一双亲 即双亲位于同一层的结点( 堂兄弟 即双亲位于同一层的结点 ) 祖先——即从根到该结点所经分支的所有结点 祖先 即从根到该结点所经分支的所有结点 子孙——即该结点下层子树中的任一结点 子孙 即该结点下层子树中的任一结点
讨论3:树的链式存储方案应该怎样制定? 讨论 :树的链式存储方案应该怎样制定? 链式存储方案应该怎样制定
可用多重链表:一个前趋指针, 个后继指针. 可用多重链表:一个前趋指针,n个后继指针. 细节问题:树中结点的结构类型样式该如何设计? 细节问题:树中结点的结构类型样式该如何设计? 即应该设计成"等长"还是"不等长" 即应该设计成"等长"还是"不等长"? 缺点:等长结构太浪费(每个结点的度不一定相同); 缺点:等长结构太浪费(每个结点的度不一定相同); 不等长结构太复杂(要定义好多种结构类型). 不等长结构太复杂(要定义好多种结构类型). 解决思路:先研究最简单,最有规律的树,然后设法把一般 解决思路:先研究最简单,最有规律的树, 的树转化为简单树. 的树转化为简单树.
数据结构复习题-第6章答案2014-6-16

第6章树和二叉树一、选择题(每小题1分,共10分)1.以下数据结构中,( A )是非线性数据结构。
A.树B.线性表C.队列D.栈2.在一棵二叉树中第五层上的结点数最多为( B )。
A.8B.15C.16D.323. 已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为( A )。
A. CBEFDAB. FEDCBAC. CBEDFAD. 不定4.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( B )。
A.9B.11C.15D.不确定5.给定二叉树如图所示。
设N代表二叉树的根,L代表根结点的左子树,R代表根结点的右子树。
若遍历后的结点序列为3,7,5,6,1,2,4,则其遍历方式是(D )。
A. LRNB. NRLC. RLND. RNL6.在下列存储形式中,哪一个不是树的存储形式?( D )A.双亲表示法B.孩子表示法C.孩子兄弟表示法D.顺序存储表示法7.有n个叶子的哈夫曼树的结点总数为(D )。
A.不确定B.2n C.2n+1 D.2n-18.设i为n个结点的完全二叉树结点编号,i=1,2,3...n;若i≤(n-1)/2时,结点i的右孩子为( B )A.2iB.2i+1C.2i-1D.i+19. 由分别带权为9、2、5、7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为( C )。
A.23B.37C.44D.4610.一棵具有n个结点的完全二叉树的树高度(深度)是( A )。
A. +1B. log2n+1C.D. log2n-111.由权值分别为7,9,4,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( B )。
A.36B.60C.48D.5312.由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( B )。
A. 24B. 71C. 48D. 5313.具有35个结点的完全二叉树的深度为( B )。
数据结构课后练习 - 第6章

A 3. 根据树的定义,具有3个结点的树有_______种树形。
二、单项选择题
C 4. 节点前序为ABC的不同二叉树________形态。 A. 3 A. 5 B. 4 B. 6 C. 5 C. 7 D. 6 D. 8 B 5. 具有35个结点的完全二叉树的深度为_________。
三、填空题
结点拥有子树个数 1. 在树的定义中,结点的度是____________________ ; 度为0的结点 叶子结点是____________________ ;树的度是 树中所有结点的最大值 ____________________;树中结点的最大层次称为树 深度/高度 的____________________。 最短 2. 哈夫曼树的带权路径长度_____________的二叉树。 3. 某二叉树的前序遍历序列为DABEC,中序遍历序列为 EBCAD DEBAC,则后序遍历序列为____________________。
① 画出这棵树的形态。
② 写出该树后序遍历的结点访问顺序。
a
b c
后序遍历:
gdbehfca
d
g
e
h
f
5. 设树T的度为4,其中度为1,2,3,4的结点个数分别为4, 2,1,1。问T中有多少个叶子结点? 利用树的性质:各结点射出的分支总数+1=总结点数
① 树T中,各个结点射出的分支总数: 4×1 + 2×2 + 1×3 + 1×4 = 15
2. 给定一个权集W={4,5,7,8,6,12,18},请画出相应的哈夫曼 树,并计算其带权路径长度WPL。 60 35 17 8 4 9 5 18 12 6 25 13 7 WPL = 8×3 + (4 + 5)×4 + 18×2 + 12×2 + (6+7)×3 = 159 树型不唯一,但最小WPL值是唯 一的。
数据结构详细教案——树与二叉树

数据结构教案第六章树与二叉树目录6.1树的定义和基本术语 (1)6.2二叉树 (2)6.2.1 二叉树的定义 (2)6.2.2 二叉树的性质 (4)6.2.3 二叉树的存储结构 (5)6.3树和森林 (6)6.4二叉树的先|中|后序遍历算法 (7)6.5先|后|中序遍历的应用扩展 (9)6.5.1 基于先序遍历的二叉树(二叉链)的创建 (9)6.5.2 统计二叉树中叶子结点的数目 (9)6.5.3 求二叉树的高度 (10)6.5.4 释放二叉树的所有结点空间 (11)6.5.5 删除并释放二叉树中以元素值为x的结点作为根的各子树 (12)6.5.6 求位于二叉树先序序列中第k个位置的结点的值 (12)6.5.7 线索二叉树 (13)6.5.8 树和森林的遍历 (14)6.6二叉树的层次遍历 (16)6.7判断一棵二叉树是否为完全二叉树 (16)6.8哈夫曼树及其应用 (18)6.8.1 最优二叉树(哈夫曼树) (18)6.8.2 哈夫曼编码 (19)6.9遍历二叉树的非递归算法 (19)6.9.1 先序非递归算法 (19)6.9.2 中序非递归算法 (20)6.9.3 后序非递归算法 (21)第6章二叉树和树6.1 树的定义和基本术语1、树的递归定义1)结点数n=0时,是空树2)结点数n>0时有且仅有一个根结点、m个互不相交的有限结点集——m棵子树2、基本术语结点:叶子(终端结点)、根、内部结点(非终端结点、分支结点);树的规模:结点的度、树的度、结点的层次、树的高度(深度)结点间的关系:双亲(1)—孩子(m),祖先—子孙,兄弟,堂兄弟兄弟间是否存在次序:无序树、有序树去掉根结点非空树森林引入一个根结点3、树的抽象数据类型定义树特有的操作:查找:双亲、最左的孩子、右兄弟结点的度不定,给出这两种操作可以查找到一个结点的全部孩子插入、删除:孩子遍历:存在一对多的关系,给出一种有规律的方法遍历(有且仅访问一次)树中的结点ADT Tree{数据对象:D={a i | a i∈ElemSet, i=1,2,…,n, n≥0}数据关系:若D为空集,则称为空树;若D仅含一个数据元素,则R为空集,否则R={H},H是如下二元关系:(1) 在D中存在唯一的称为根的数据元素root,它在关系H下无前驱;(2) 若D-{root}≠Ф,则存在D-{root}的一个划分D1, D2, …, D m (m>0)(D i 表示构成第i棵子树的结点集),对任意j≠k (1≤j, k≤m) 有D j∩D k=Ф,且对任意的i (1≤i≤m),唯一存在数据元素x i∈D i, 有<root,x i>∈H(H表示结点之间的父子关系);(3) 对应于D-{root}的划分,H-{<root, x1>,…, <root, x m>}有唯一的一个划分H1, H2, …, H m(m>0)(H i表示第i棵子树中的父子关系),对任意j≠k(1≤j,k≤m)有H j∩H k=Ф,且对任意i(1≤i≤m),H i是D i上的二元关系,(D i, {H i})是一棵符合本定义的树,称为根root的子树。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章树和二叉树
一.选择题
1. 以下说法错误的是。
A.树形结构的特点是一个结点可以有多个直接前趋
B.线性结构中的一个结点至多只有一个直接后继
C.树形结构可以表达(组织)更复杂的数据
D.树(及一切树形结构)是一种"分支层次"结构
2. 如图6-2所示的4 棵二叉树中,不是完全二叉树。
图6-2 4 棵二叉树
3. 在线索化二叉树中,t 所指结点没有左子树的充要条件是。
A. t->left == NULL
B. t->ltag==1
C. t->ltag==1 且t->left==NULL D .以上都不对
4. 以下说法错误的是。
A.二叉树可以是空集
B.二叉树的任一结点最多有两棵子树
C.二叉树不是一种树
D.二叉树中任一结点的两棵子树有次序之分
5. 以下说法错误的是。
A.完全二叉树上结点之间的父子关系可由它们编号之间的关系来表达
B.在三叉链表上,二叉树的求双亲运算很容易实现
C.在二叉链表上,求根,求左、右孩子等很容易实现
D.在二叉链表上,求双亲运算的时间性能很好
6. 如图6-3所示的4 棵二叉树,是平衡二叉树。
图6-3 4 棵二叉树
7. 如图6-4所示二叉树的中序遍历序列是。
A. abcdgef
B. dfebagc
C. dbaefcg
D. defbagc
图6-4 1 棵二叉树
8. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是。
A. acbed
B. decab
C. deabc
D. cedba
9. 如果T2 是由有序树T 转换而来的二叉树,那么T 中结点的前序就是T2 中结点的。
A. 前序
B.中序
C. 后序
D. 层次序
10. 某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是。
A. bdgcefha
B. gdbecfha
C. bdgaechf
D. gdbehfca
11. 将含有83个结点的完全二叉树从根结点开始编号,根为1号,后面按从上到下、从左到右的顺序对结点编号,那么编号为41的双亲结点编号为。
A.42
B.40
C.21
D.20
12. 一棵二叉树如图6-5所示,其后序遍历的序列为。
A. abdgcefh
B. dgbaechf
C. gdbehfca
D. abcdefgh
图6-5 1 棵二叉树
13. 深度为5 的二叉树至多有个结点。
A. 16
B. 32
C.31
D.10
14. 对一个满二叉树,m 个叶子,n 个结点,深度为h,则。
A. n=h+m
B. h+m=2n
C. m=h-1
D. n=2h-1
15. 如图6-6所示的二叉树是由有序树(森林)转换而来的,那么该有序树(森林)有个叶结点。
A. 4
B. 5
C. 6
D. 7
图6-6 1 棵二叉树
16. 设深度为k的二叉树上只有度为0和度为2的节点,则这类二叉树上所含结点总数最少个
A.k+1
B.2k
C.2k-1
D.2k+1
17. 一棵二叉树满足下列条件:对任意结点,若存在左、右子树,则其值都小于它的左子树上所有结点的值,而大于右子树上所有结点的值。
现采用遍历方式就可以得到这棵二叉树所有结点的递增序列。
A.先根
B.中根
C.后根
D.层次
18. 设森林T中有4棵树,第一、二、三、四棵树的结点个数分别是n1,n2,n3,n4,那么当把森林T转换成一棵二叉树后,且根结点的右子树上有个结点。
A.n1-1
B.n1
C.n1+n2+n3
D.n2+n3+n4
19. 森林T中有4棵树,第一、二、三、四棵树的结点个数分别是n1,n2,n3,n4,那么当把森林T转换成一棵二叉树后,且根结点的左孩子上有个结点。
A.n1-1
B.n1
C.n1+n2+n3
D.n2+n3+n4
20. 对含有个结点的非空二叉树,采用任何一种遍历方式,其结点访问序列均相同。
A.0
B.1
C.2
D.不存在这样的二叉树
二.填空题
1. 有一棵树如图6-7 所示,回答下面的问题:
图6-7 1 棵二叉树
(1)这棵树的根结点是①;
(2)这棵树的叶子结点是②;
(3)结点k3 的度是③;
(4)这棵树的度为④;
(5)这棵树的深度是⑤;
(6)结点k3 的孩子是⑥;
(7)结点k3 的双亲结点是⑦。
2. 深度为k 的完全二叉树至少有①个结点,至多有②个结点,若按自上而下,从左到右次序给结点编号(从 1 开始),则编号最小的叶子结点的编号是③。
3. 一棵二叉树的第i(i≥1)层最多有①个结点;一棵有n(n>0)个结点的满二叉树共有②个叶子和③个非终端结点。
4. 结点最少的树为①,结点最少的二叉树为②。
5. 根据二叉树的定义,具有三个结点的二叉树有①种不同的形态,它们分别是②。
6. 具有n个结点的完全二叉树的深度为。
7. 已知一棵树如图6-8 所示,其孩子兄弟表示为。
图6-8 1棵二叉树
8. 以数据集{4,5,6,7,10,12,18}为结点权值所构造的哈夫曼树为①,其带权路径长度为②。
9. 哈夫曼树是带权路径度____①___的树,通常权值较大的结点离根___②____。
10.在________遍历二叉树的序列中,任何结点的子树上的所有结点,都是直接跟在该结点之后。
参考答案
一.选择题
1 2 3 4 5 6 7 8 9 10
A C
B
C
D B B D A D
11 12 13 14 15 16 17 18 19 20
D C C D C C B D A B 二.填空题
1.答:①k1 ②k2 k5 k7 k4 ③ 2 ④ 3 ⑤ 4 ⑥k5,k6 ⑦k1
2.答:①2②2-1 ③2+1
3.答:①2②③
4.答:①只有一个结点的树②空的二叉树
5.答:① 5 ②如图6-10所示。
图6-10 5种二叉树
6.答:floor(log2n)+1
7.答:如图6-11所示
图6-11 1棵树的孩子兄弟表示8.答:①如图6-5所示②165
图6-5 1棵哈夫曼树
9.答:①最短②较近
10.先根。