大学教程(零起点)数据结构- 树和二叉树PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
另:根据各个结点的前驱和后继情况 度数为1的结点表示有一个孩子结点 度数为2的结点表示有两个孩子节点 所以树中孩子结点总数为 n1 + 2 * n2 (2) 由(1)和(2)有: n1 + 2 * n2 = n0 + n1 + n2 - 1 故 n0 = n2 + 1;
33
满二叉树(Full Binary Tree)
B D M
A C
E FGH
26
结点A的度:3 结点B的度:2 结点M的度:0
树的度:3
B
叶子:K,L,F,G,M,I,J
结点I的双亲:D
结点L的双亲:E
A
结点B,C,D为兄弟
C
D 结点K,L为兄弟
E
F G H I J 树的深度:4
KL
M
结点A的层次:1 结点M的层次:4
结点A的孩子:B,C,D 结点B的孩子:E,F
A
B
C
E
FG
J
根
D HI
17
A
M
D
B
E
A
B D
树
F
M
的 其
C
E
GH
C
他
F
表
A
G
示
H
形 式
B
C
D
E FGH
M
18
知识点3:树的基本术语
结点:数据元素的内容及其指向其子树根的分支 结点的度(Degree):结点拥有的子树的数目。 树的度:一棵树内各结点的度的最大值;
A、B、C、D、
E、F、G、H、
深度为k且有2k-1个结点的二叉树 考虑到有序性,任一结点在树中都有确切的位置, 因此可以对满二叉树进行编号。编号方式为:从上 到下,从左到右。
1
2
3
4567
8 9 10 11 12 13 14 15
34
完全二叉树
若一颗深度为k的二叉树,其k-1层是一颗满二叉树, 而最下面一层,即第k层上的结点都集中在该层最左 边的若干位置上,则称作完全二叉树。
B
C
D
E
F GH I
J
树描述的是一种层次结构, 是一种一对多的逻辑关系
16
知识点1:树的定义
树(Tree)是n(n>=0)个结点的有 限集T。n=0时称为空树。
根
对于非空树
有且仅有一个称为根(ROOT)的 结点;
n>1
其余结点可分为m(m>0)个互不 相交的有限集T1,T2,…,Tm,其中 每个集合又是一棵树,称为子树
B、C是兄弟关系
B
A
A是B、C的双亲
C
B、C是A的孩子
D
E FGH
M
E、F是堂兄弟关系 21
路径:若树中存在一个序列k1,k2…kn,使得ki是 ki+1的双亲,则称该结点序列为k1到kn的一条路径。
路径长度:这些节点经过的边的条数
序列:A B D M E 非路径
序列:A B D M 是路径
序列:A C F
C
D
E FGH
M
24
森林:多棵互不相交的树的集合构成森林
A
B
C
D
E
F
GH I
J
M
三棵树构成的森林
25
结点 结点的度(Degree) 叶子(Leaf)或终端结点 分支结点或非终端结点 树的度 层次(Level) 树的深度(Depth) 孩子(child) 双亲(Parent) 兄弟(Sibling) 祖先 子孙 路径
复习前节
1、数据结构的基本概念
2、顺序表、链表
3、顺序栈、链栈 4、顺序队、链队
线性表
5、顺序串、链串 6、数组和广义表
线性表的推广 树的推广
1
第五章 树和二叉树
5.1 树的概念和术语 5.2 二叉树 5.3 二叉树的运算 5.4 线索二叉树 5.5 树和森林 5.6 哈夫曼树及其应用
2
1、树的概念 2、树的专业术语 3、二叉树的概念 4、哈夫曼树和哈夫曼编码
30
二叉树的性质 性质1.非空二叉树的第i层上至多有2i-1个结点(i1)
证明:i = 1, 只有根结点,显然成立 设i = k时成立,最多有2k-1个结点 当i= k+1时,最多的结点个数: 2k-1 * 2 = 2k-1+1 = 2k = 2( k+1)-1
1
2
3
4567
31
8 9 10 11 12 13 14 15
结点F,G为堂兄弟 结点G的祖先是结点A,C 结点D的子孙为H,I,J,M
27
知识点3: 二叉树的概念
二叉树(Binary Tree): 或者是一棵空树, 或者是一棵由一个根结点和两棵互不相交的左子
树和右子树所组成的非空树, 左子树和右子树同样也都是二叉树 A
B
C
ห้องสมุดไป่ตู้
D
EF
H
M 28
特征:
• 每个结点最多只有两棵子树
• 子树有左右之分,次序不能任意颠倒,只有一 棵子树时也必须分清是左子树还是右子树
A BC
A CB
29
二叉树的五种基本形态
A
A
A
A
(a)
(b)
(c)
(d)
(e)
(a) 空二叉树
(b) 单结点二叉树
(c) 右子树为空
(d) 左子树为空 (e) 左、右子树非空
二叉树的五种基本形态
性质2.深度为k的二叉树至多有2k-1个结点(k1)
证明:二叉树的结点个数为: 1 + 2 + … + 2k-1= 2k-1
1
2
3
4567
8 9 10 11 12 13 14 15
32
性质3.对任何一棵二叉树T,如果其终端结点数为 n0,度为2的结点数为n2,则n0=n2+1。
证明:设n1为T中度为1的结点数,则总结点数: n = n0 + n1 + n2 (1)
6
7
8
9
知识点1:树的概念
自
然
抽
中
象
的
的
树
树
10
旋转后 11
适当进行调整 12
数据结构中树的形态,具有分层特点
13
某姓氏族谱
14
A
B
C
D
E
F
G
H
I J KL M N O P Q R S T U VW X Y Z
……………………..
对树中的结点给定一个符号名称,具有一对多的特点
15
A
是路径
A
B
C
D
E FGH
M
22
子孙,祖先:以某结点为根的子树中的所有结点都 被称为是该结点的子孙。从根结点到该结点路径上 的所有结点称为该结点的祖先。
A
B
C
D
E FGH
M
23
结点的层数:树中根结点的层次为1,根结点子树 的根为第2层,以此类推。
树的高度(深度):树中所有结点层次的最大值
A
B
M
B
均称为结点
D
A
A 结点的度为 2
C 结点的度为 3
C M 结点的度为 0
E F G H 树的度为3
M
19
知识点3:树的基本术语
叶子(终端结点Leaf),非终端结点:度为0的结 点称为叶子结点;度不为0的结点称为非终端结点。
A
B
C
D
E FGH
M
20
孩子,双亲,兄弟,堂兄:结点的子树的根称为该 结点的孩子;该结点称为孩子的双亲;同一个双亲 的孩子之间互称兄弟;双亲在同一层的结点互为堂 兄弟。
a
b
c
d
e
f
g
hi j
35
1
2
3
1
2
3
4
5
6
7
4
5
67
33
满二叉树(Full Binary Tree)
B D M
A C
E FGH
26
结点A的度:3 结点B的度:2 结点M的度:0
树的度:3
B
叶子:K,L,F,G,M,I,J
结点I的双亲:D
结点L的双亲:E
A
结点B,C,D为兄弟
C
D 结点K,L为兄弟
E
F G H I J 树的深度:4
KL
M
结点A的层次:1 结点M的层次:4
结点A的孩子:B,C,D 结点B的孩子:E,F
A
B
C
E
FG
J
根
D HI
17
A
M
D
B
E
A
B D
树
F
M
的 其
C
E
GH
C
他
F
表
A
G
示
H
形 式
B
C
D
E FGH
M
18
知识点3:树的基本术语
结点:数据元素的内容及其指向其子树根的分支 结点的度(Degree):结点拥有的子树的数目。 树的度:一棵树内各结点的度的最大值;
A、B、C、D、
E、F、G、H、
深度为k且有2k-1个结点的二叉树 考虑到有序性,任一结点在树中都有确切的位置, 因此可以对满二叉树进行编号。编号方式为:从上 到下,从左到右。
1
2
3
4567
8 9 10 11 12 13 14 15
34
完全二叉树
若一颗深度为k的二叉树,其k-1层是一颗满二叉树, 而最下面一层,即第k层上的结点都集中在该层最左 边的若干位置上,则称作完全二叉树。
B
C
D
E
F GH I
J
树描述的是一种层次结构, 是一种一对多的逻辑关系
16
知识点1:树的定义
树(Tree)是n(n>=0)个结点的有 限集T。n=0时称为空树。
根
对于非空树
有且仅有一个称为根(ROOT)的 结点;
n>1
其余结点可分为m(m>0)个互不 相交的有限集T1,T2,…,Tm,其中 每个集合又是一棵树,称为子树
B、C是兄弟关系
B
A
A是B、C的双亲
C
B、C是A的孩子
D
E FGH
M
E、F是堂兄弟关系 21
路径:若树中存在一个序列k1,k2…kn,使得ki是 ki+1的双亲,则称该结点序列为k1到kn的一条路径。
路径长度:这些节点经过的边的条数
序列:A B D M E 非路径
序列:A B D M 是路径
序列:A C F
C
D
E FGH
M
24
森林:多棵互不相交的树的集合构成森林
A
B
C
D
E
F
GH I
J
M
三棵树构成的森林
25
结点 结点的度(Degree) 叶子(Leaf)或终端结点 分支结点或非终端结点 树的度 层次(Level) 树的深度(Depth) 孩子(child) 双亲(Parent) 兄弟(Sibling) 祖先 子孙 路径
复习前节
1、数据结构的基本概念
2、顺序表、链表
3、顺序栈、链栈 4、顺序队、链队
线性表
5、顺序串、链串 6、数组和广义表
线性表的推广 树的推广
1
第五章 树和二叉树
5.1 树的概念和术语 5.2 二叉树 5.3 二叉树的运算 5.4 线索二叉树 5.5 树和森林 5.6 哈夫曼树及其应用
2
1、树的概念 2、树的专业术语 3、二叉树的概念 4、哈夫曼树和哈夫曼编码
30
二叉树的性质 性质1.非空二叉树的第i层上至多有2i-1个结点(i1)
证明:i = 1, 只有根结点,显然成立 设i = k时成立,最多有2k-1个结点 当i= k+1时,最多的结点个数: 2k-1 * 2 = 2k-1+1 = 2k = 2( k+1)-1
1
2
3
4567
31
8 9 10 11 12 13 14 15
结点F,G为堂兄弟 结点G的祖先是结点A,C 结点D的子孙为H,I,J,M
27
知识点3: 二叉树的概念
二叉树(Binary Tree): 或者是一棵空树, 或者是一棵由一个根结点和两棵互不相交的左子
树和右子树所组成的非空树, 左子树和右子树同样也都是二叉树 A
B
C
ห้องสมุดไป่ตู้
D
EF
H
M 28
特征:
• 每个结点最多只有两棵子树
• 子树有左右之分,次序不能任意颠倒,只有一 棵子树时也必须分清是左子树还是右子树
A BC
A CB
29
二叉树的五种基本形态
A
A
A
A
(a)
(b)
(c)
(d)
(e)
(a) 空二叉树
(b) 单结点二叉树
(c) 右子树为空
(d) 左子树为空 (e) 左、右子树非空
二叉树的五种基本形态
性质2.深度为k的二叉树至多有2k-1个结点(k1)
证明:二叉树的结点个数为: 1 + 2 + … + 2k-1= 2k-1
1
2
3
4567
8 9 10 11 12 13 14 15
32
性质3.对任何一棵二叉树T,如果其终端结点数为 n0,度为2的结点数为n2,则n0=n2+1。
证明:设n1为T中度为1的结点数,则总结点数: n = n0 + n1 + n2 (1)
6
7
8
9
知识点1:树的概念
自
然
抽
中
象
的
的
树
树
10
旋转后 11
适当进行调整 12
数据结构中树的形态,具有分层特点
13
某姓氏族谱
14
A
B
C
D
E
F
G
H
I J KL M N O P Q R S T U VW X Y Z
……………………..
对树中的结点给定一个符号名称,具有一对多的特点
15
A
是路径
A
B
C
D
E FGH
M
22
子孙,祖先:以某结点为根的子树中的所有结点都 被称为是该结点的子孙。从根结点到该结点路径上 的所有结点称为该结点的祖先。
A
B
C
D
E FGH
M
23
结点的层数:树中根结点的层次为1,根结点子树 的根为第2层,以此类推。
树的高度(深度):树中所有结点层次的最大值
A
B
M
B
均称为结点
D
A
A 结点的度为 2
C 结点的度为 3
C M 结点的度为 0
E F G H 树的度为3
M
19
知识点3:树的基本术语
叶子(终端结点Leaf),非终端结点:度为0的结 点称为叶子结点;度不为0的结点称为非终端结点。
A
B
C
D
E FGH
M
20
孩子,双亲,兄弟,堂兄:结点的子树的根称为该 结点的孩子;该结点称为孩子的双亲;同一个双亲 的孩子之间互称兄弟;双亲在同一层的结点互为堂 兄弟。
a
b
c
d
e
f
g
hi j
35
1
2
3
1
2
3
4
5
6
7
4
5
67