树的定义和基本术语
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本操作:
InitTree(&T) 操作结果:构造空树T。
DestroyTree(&T) 初始条件:树T存在。 操作结果,销毁树T。
基本操作:
CreateTree(&T,definition) 初始条件:definition给出树T的定义。 操作结果:按definition构造树T。
ClearTree(&T) 初始条件;树T存在。 操作结果:将树T清为空树。
<C2,S2.1>, <C2,S2.2>, <C2,S2.3>, <S2.1, S2.1.1>, <S2.1, S2.1.2>}
Book
C1
C2
C3
S1.1 S1.2 S2.1 S2.2 S2.3
S2.1.1 S2.1.2
Chapter Section Section
6.1 树(Tree)的定义和基本术语
计网计生环动生资英
算络算物境物物源语
机中中系系中工所系
系心心
心程
中
心
行政机构
日 汉历 哲
语 语史 学 系 系系 系
磁盘目录
6.1 树(Tree)的定义和基本术语
叶Leaf
分枝Branch
根Root 根-----------------根结点 分枝--------------分枝结点 叶-----------------叶结点
TreeEmpty(T) 初始条件:树T存在。 操作结果:若T为空树,则返回TRUE,否则FALSE。
TreeDepth(T) 初始条件:树T存在。 操作结果;返回T的深度。
基本操作:
Root(T) 初始条件:树T存在。 操作结果:返回T的根。
Value(T,cur_e) 初始条件:树T存在,cur_e是T中某个结点。 操作结果:返回cur_e的值。
B C 有序 C B
结点A的度:3 结点B的度:2 结点M的度:0
结点A的孩子:B,C,D 结点B的孩子:E,F
树的度:3
B
叶子:K,L,F,G,M,I,J
结点I的双亲:D
A
结点L的双亲:E
结点B,C,D为兄弟
C
D 结点K,L为兄弟
E
F GH I J
KL
M
树的深度:4
结点A的层次:1 结点M的层次:4
结点F,G为堂兄弟 结点A是结点F,G的祖先
6.1 树(Tree)的定义和基本术语
❖森林(Forest):是m(m 0)棵互不相交的树的集合
T1
F
root
来自百度文库
A
T2 T3
T4 T5 T6
(例如删除树根后的 子树构成一个森林)
B
C
D
E F GH I J
KL
M
任何一棵非空树是一个二元组 Tree = (root,F) 其中:root 被称为根结点,F 被称为子树森林
(2) 若D-{root}≠ ,则存在D-{root}的一个划分D1,D2, …,Dm,(m>0),对任意j≠k(1≤j,k≤m)有Dj∩Dk= , 且对任意的i(1≤i≤m),唯一存在数据元素xi∈Di, 有<root,xi>∈H;
(3) 对应于D-{root}的划分,H—{<root,x1>,…,<root,xm>} 有唯一的一个划分H1,H2,…,Hm(m>0),对任意j≠k(1≤j, k≤m) 有Hj∩Hk= ,且对任意i(1≤i≤m),Hi是Di上的二元 关系,(Di,{Hi})是一棵符合本定义的树,称为根root的子树.
❖ 术语主要来源于家谱和树:
双亲、父母( Parent);子女、孩子(Child): 若〈a,b〉 R,则称a是b的双亲,b是a 的子女(孩子). 叶结点(Leaf):度为0的结点; 分枝结点(Branch node):度大于0的结点; 结点度(Degree):该结点所拥有的子女数; 树的度:树内各结点度的最大值; 结点的层次(Level):设根结点的层次为1,其它任一结点
路径(Path):如果有结点序列n1,n2,n3,…,nk,并且前1个结 点是后1个结点的双亲;它的长度是k-1;
祖先、后代(ancestor):一个结点是它所有子树中的结点
的祖先,这些结点是它的后代(子孙);
有序树(Ordered tree):每个结点的子女由左到右是有次
A
无序
序的称有序树;否则是无序树; A
6.1 树(Tree)的定义和基本术语
❖树的定义:树是n(n>=0)结点的有限集,
在任意非空树中: (1) 有且仅有一个特定的结点称为根(Root)的结点. (2) 当n>1时,其余的结点可分为m个互不相交的子
集 T1, T2, … , Tm, 每个子集又都是树,称为根 的子树(Sub tree).
6.1 树(Tree)的定义和基本术语
❖抽象数据类型树的定义:
ADT Tree{ 数据对象D:D是具有相同特性的数据元素的集合。
数据关系R:若D为空集,则称为空树; 若D仅含一个数据元素,则R为空集,否则R={H},H是如下 二元关系:
(1) 在D中存在唯一的称为根的数据元素root,它在关系H下 无前驱;
Assign(T,cur_e,value) 初始条件:树T存在,cur_e是T中某个结点。 操作结果:结点cur_e 赋值为value。
Parent(T,cur_e); 初始条件:树T存在,cur_e是T中某个结点。
树的定义具有递归性
6.1 树(Tree)的定义和基本术语
例6.1
Tree=<D, {R}> D={Book, C1, C2, C3, S1.1, S1.2, S2.1, S2.2, S2.3, S2.1.1, S2.1.2 } R={<Book,C1>, <Book,C2>, <Book,C3>, <C1,S1.1>, <C1,S1.2>,
所在的层次是其双亲的层次加1;
6.1 树(Tree)的定义和基本术语
❖树是一种层次结构 (hiberarchy)
1 2 3 4 5
6.1 树(Tree)的定义和基本术语
深度(Depth):树中结点的最大层次;或称为高; 兄弟(Sibling):具有同一双亲的结点互称兄弟; 堂兄弟(Cousin):双亲在同一层的结点之间互称堂兄弟;
第六章 树与二叉树
6.1 树的定义和基本术语 6.2 二叉树 6.3 遍历二叉树和线索二叉树 6.4 树和森林 6.5 Huffman树及其应用
树形结构是一种非线性结构,应用十分广泛。 如:行政机构、家谱、磁盘目录等
内蒙古大学
理工学院 计算机学院 生命科学学院 外国语学院 人文学院
数物电 学理子 系系系
InitTree(&T) 操作结果:构造空树T。
DestroyTree(&T) 初始条件:树T存在。 操作结果,销毁树T。
基本操作:
CreateTree(&T,definition) 初始条件:definition给出树T的定义。 操作结果:按definition构造树T。
ClearTree(&T) 初始条件;树T存在。 操作结果:将树T清为空树。
<C2,S2.1>, <C2,S2.2>, <C2,S2.3>, <S2.1, S2.1.1>, <S2.1, S2.1.2>}
Book
C1
C2
C3
S1.1 S1.2 S2.1 S2.2 S2.3
S2.1.1 S2.1.2
Chapter Section Section
6.1 树(Tree)的定义和基本术语
计网计生环动生资英
算络算物境物物源语
机中中系系中工所系
系心心
心程
中
心
行政机构
日 汉历 哲
语 语史 学 系 系系 系
磁盘目录
6.1 树(Tree)的定义和基本术语
叶Leaf
分枝Branch
根Root 根-----------------根结点 分枝--------------分枝结点 叶-----------------叶结点
TreeEmpty(T) 初始条件:树T存在。 操作结果:若T为空树,则返回TRUE,否则FALSE。
TreeDepth(T) 初始条件:树T存在。 操作结果;返回T的深度。
基本操作:
Root(T) 初始条件:树T存在。 操作结果:返回T的根。
Value(T,cur_e) 初始条件:树T存在,cur_e是T中某个结点。 操作结果:返回cur_e的值。
B C 有序 C B
结点A的度:3 结点B的度:2 结点M的度:0
结点A的孩子:B,C,D 结点B的孩子:E,F
树的度:3
B
叶子:K,L,F,G,M,I,J
结点I的双亲:D
A
结点L的双亲:E
结点B,C,D为兄弟
C
D 结点K,L为兄弟
E
F GH I J
KL
M
树的深度:4
结点A的层次:1 结点M的层次:4
结点F,G为堂兄弟 结点A是结点F,G的祖先
6.1 树(Tree)的定义和基本术语
❖森林(Forest):是m(m 0)棵互不相交的树的集合
T1
F
root
来自百度文库
A
T2 T3
T4 T5 T6
(例如删除树根后的 子树构成一个森林)
B
C
D
E F GH I J
KL
M
任何一棵非空树是一个二元组 Tree = (root,F) 其中:root 被称为根结点,F 被称为子树森林
(2) 若D-{root}≠ ,则存在D-{root}的一个划分D1,D2, …,Dm,(m>0),对任意j≠k(1≤j,k≤m)有Dj∩Dk= , 且对任意的i(1≤i≤m),唯一存在数据元素xi∈Di, 有<root,xi>∈H;
(3) 对应于D-{root}的划分,H—{<root,x1>,…,<root,xm>} 有唯一的一个划分H1,H2,…,Hm(m>0),对任意j≠k(1≤j, k≤m) 有Hj∩Hk= ,且对任意i(1≤i≤m),Hi是Di上的二元 关系,(Di,{Hi})是一棵符合本定义的树,称为根root的子树.
❖ 术语主要来源于家谱和树:
双亲、父母( Parent);子女、孩子(Child): 若〈a,b〉 R,则称a是b的双亲,b是a 的子女(孩子). 叶结点(Leaf):度为0的结点; 分枝结点(Branch node):度大于0的结点; 结点度(Degree):该结点所拥有的子女数; 树的度:树内各结点度的最大值; 结点的层次(Level):设根结点的层次为1,其它任一结点
路径(Path):如果有结点序列n1,n2,n3,…,nk,并且前1个结 点是后1个结点的双亲;它的长度是k-1;
祖先、后代(ancestor):一个结点是它所有子树中的结点
的祖先,这些结点是它的后代(子孙);
有序树(Ordered tree):每个结点的子女由左到右是有次
A
无序
序的称有序树;否则是无序树; A
6.1 树(Tree)的定义和基本术语
❖树的定义:树是n(n>=0)结点的有限集,
在任意非空树中: (1) 有且仅有一个特定的结点称为根(Root)的结点. (2) 当n>1时,其余的结点可分为m个互不相交的子
集 T1, T2, … , Tm, 每个子集又都是树,称为根 的子树(Sub tree).
6.1 树(Tree)的定义和基本术语
❖抽象数据类型树的定义:
ADT Tree{ 数据对象D:D是具有相同特性的数据元素的集合。
数据关系R:若D为空集,则称为空树; 若D仅含一个数据元素,则R为空集,否则R={H},H是如下 二元关系:
(1) 在D中存在唯一的称为根的数据元素root,它在关系H下 无前驱;
Assign(T,cur_e,value) 初始条件:树T存在,cur_e是T中某个结点。 操作结果:结点cur_e 赋值为value。
Parent(T,cur_e); 初始条件:树T存在,cur_e是T中某个结点。
树的定义具有递归性
6.1 树(Tree)的定义和基本术语
例6.1
Tree=<D, {R}> D={Book, C1, C2, C3, S1.1, S1.2, S2.1, S2.2, S2.3, S2.1.1, S2.1.2 } R={<Book,C1>, <Book,C2>, <Book,C3>, <C1,S1.1>, <C1,S1.2>,
所在的层次是其双亲的层次加1;
6.1 树(Tree)的定义和基本术语
❖树是一种层次结构 (hiberarchy)
1 2 3 4 5
6.1 树(Tree)的定义和基本术语
深度(Depth):树中结点的最大层次;或称为高; 兄弟(Sibling):具有同一双亲的结点互称兄弟; 堂兄弟(Cousin):双亲在同一层的结点之间互称堂兄弟;
第六章 树与二叉树
6.1 树的定义和基本术语 6.2 二叉树 6.3 遍历二叉树和线索二叉树 6.4 树和森林 6.5 Huffman树及其应用
树形结构是一种非线性结构,应用十分广泛。 如:行政机构、家谱、磁盘目录等
内蒙古大学
理工学院 计算机学院 生命科学学院 外国语学院 人文学院
数物电 学理子 系系系