6.1 树的定义和术语
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学技术学院Email:
zhaihy01@
第6章树
本章主要内容
6.1 树的基本概念和术语
6.2 二叉树及二叉树的存储结构
6.3 二叉树的遍历及线索二叉树
6.4 树和二叉树的转换
6.5 Huffman树和Huffman编码
2
计算机科学技术学院Email:
zhaihy01@
6.1 树的基本概念和术语
4
树的基本概念和术语
1.树的定义
树(Tree )是n (n≥0)个有限数据元素的集合。在任意一棵非空树T 中:
(1)有且仅有一个特定的称为树根(Root )的结点,根结点无前趋结点;
(2)当n>1时,除根结点之外的其余结点被分成m (m>0)个互不相交的集合T 1,T 2,…,T m ,其中每一个集合T i (1≤i ≤m )本身又是一棵树,并且称为根的子树。
树的定义采用了递归定义的方法,即在树的定义中又用到树的概念,这正好反映了树的固有特性。
5
A
B C
H
G
F
E
D
J
I
2.树的表示法
树的结构表示法,是一种直观的画法,其特点是对树的逻辑结构的描述非常直观、清晰。是使用最多的一种描述方法。
树结构示意图
(1)嵌套集合法
嵌套集合法,也称为文氏图法(Venn Diagram ),它是用集合以及集合的包含关系来描述树形结构,每个圆圈表示一个集合,套起来的圆圈表示包含关系。图(a)就是一棵树的嵌套集合表示。A
B C E
I
J
D F
G
H
(a )嵌套集合表示
A
B
C
H
G
F E
D
J
I
(2)圆括号表示法
圆括号表示法也称为广义表表示法,它是使用括号将集合层次与包含关系显示出来。
(A (B (D,E (I,J ),F ),C (G,H )))
A
B
C
H
G
F
E D
J
I
A
B C E
D J
F G H I A
B
C
H
G
F E D
J
I (3)凹入法
凹入法是用不同宽度的行来显示各结点,而行的凹入程度体现了各结点集合的包含关系。树的凹入表示法主要用于树的屏幕显示和打印输出。
A
B C D
E F G H I J K L A: 是根结点,同时是B、C、D结点的父结点或双亲结点B: 是E、F的父结点,E、F 是B的子结点或孩子结点J、K、L、F、G、I:是叶子节点
10
A
B C D E F
G
H I
J
K
L
B 的子孙为E 、F 、J 、K 。
G 与E 、F 、H 、I 互为堂兄弟结点
L 的祖先为A 、D 、H 。
B,C,D 互为兄弟
A
B C D
E F G H I J K L 结点A的层次:1
结点L的层次:4
结点的度: A的度为3
C的度为1
F的度为0
树的度:3树的深度:4
注意: 一棵树中,
❝
结点(node)
❝结点的度(degree)❝分支(branch)结点❝叶(leaf)结点❝子女(child)结点❝双亲(parent)结点❝
兄弟(sibling)结点❝
祖先(ancestor)结点❝子孙(descendant)结点❝结点所处层次(level)❝树的高度(depth)❝
树的度(degree)
⏹
有序树⏹无序树⏹森林
结点
:一个数据元素+若干指向子树的分支;结点度(Degree ):该结点所拥有的子女数;树的度:树内各结点度的最大值;叶结点(Leaf ):度为0的结点;
分枝结点(Branch node ):度大于0的结点;
结点的层次(Level ):设根结点的层次为1,其它任一结点
所在的层次是其双亲的层次加1;
深度(Depth ):树中结点的最大层次;或称为高;兄弟(Sibling):具有同一双亲的结点互称兄弟;
.A B C
D
E F G H I J
K L
M
堂兄弟(Cousin):双亲在同一层的结点之间互称堂兄弟;
路径(Path):如果有结点序列n
1
,n2,n3,…,n k,并且前1个结
点是后1个结点的双亲;它的长度是k-1;
祖先、后代(ancestor):一个结点是它所有子树中的结点
的祖先,这些结点是它的后代(子孙);有序树(Ordered tree):每个结点的子女由左到右是有次
序的称有序树;否则是无序树;
A
B C
A
C B
无序A
B C D
E F G H I J
森林:是m(m≥0)棵互
不相交的树的集合。
任何一棵非空树是一个二元组Tree = (root,F)
其中:root 被称为根结点,
F 被称为子树森林。A
B C D
E F G H I J K L M