数据结构 ppt课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.度 一个结点包含子树的数目,称为该结点的度。
3.树叶(叶子) 度为0的结点,称为叶子结点或树叶,也叫终端
结点。 4.孩子结点
若结点X有子树,则子树的根结点为X的孩子结 点,也称为孩子,儿子,子女等。如图6-1(c) 中A的孩子为B,C,D。 5.双亲结点
若结点X有子女Y,则X为Y的双亲结点。
ppt课件
9
6.祖先结点 从根结点到该结点所经过分支上的所有结点
为该结点的祖先。 7.子孙结点
某一结点的子女及子女的子女都为该结点子 孙。 8.兄弟结点
具有同一个双亲的结点,称为兄弟结点。 9.分支结点
除叶子结点外的所有结点,为分枝结点,也 叫非终端结点。 10.层数
根结点的层数为1,其它结点的层数为从根 结点到该结点所经过的分支数目再加1。
RightSibling(T, cur_e) // 求当前结点的右兄弟
TreeEmpty(T) // 判定树是否为空树
TreeDepth(T) // 求树的深度
TraverseTree( T, Visit() ) // 遍历
ppt课件
5
插入类:
InitTree(&T) // 初始化置空树
CreateTree(&T, definition) // 按定义构造树
称为根root的子树。
基本操作P: }ADT Tree
ppt课件
3
基本操作: 查找 插入 删除
ppt课件
4
查找类: Root(T) // 求树的根结点
Value(T, cur_e) // 求当前结点的元素值 Parent(T, cur_e) // 求当前结点的双亲结点 LeftChild(T, cur_e) // 求当前结点的最左孩子
(2)若D-{root},则存在D-{root}={D1,Dr},且
D1Dr;
(上 xH3r1>)的, H若关HrD},;系1且H存,1在则HDD;r1上中若的存D关在r系唯,H一则r的DH元r;中素H存x=1在,{<<唯rrooo一ott,,的xx元11>>素,<Hxr,or且,o存<t,r在oxorD>t1,,
第六章 树和二叉树
6.1 树的定义和基本术语
定义:树(Tree)是n(n>=0)个结点的有限集T,T为空时 称为空树,否则它满足如下两个条件: (1)有且仅有一个特定的称为根(Root)的结点; (2)其余的结点可分为m(m>=0)个互不相交的子集 T1,T2,T3…Tm,其中每个子集又是一棵树,并称其为 子树(Subtree)。
左右子 树均不 为空树
N
N
N
L
RL
R
ppt课件
14
二叉树的抽象数据类型
ADT BinaryTree{
数据对象D:D是具有相同特性的数据元素的集合。
数据关系R:
若D=,则R=,称二叉树为空二叉树;
若D,则R={H},H是如下二元关系:
(1)在D中存在唯一的称为根的数据元素root,它在关系H下无前 驱;
若干棵互不相交的树组成的集合为森林。一棵 树可以看成是一个特殊的森林。
ppt课件
11
对比树型结构和线性结构的结构特点
线性结构
树型结构
第一个数据元素 (无前驱)
根结点 (无前驱)
最后一个数据元素 (无后继)
多个叶子结点 (无后继)
其它数据元素 (一个前驱、
一个后继)
其它数据元素 (一个前驱、
多个后继)
ppt课件
10
11. 树的高度(深度) 树中结点所处的最大层数称为树的高度,如空
树的高度为0,只有一个根结点的树高度1。 12.树的度
树中结点度的最大值称为树的度。 13. 有序树
若一棵树中所有子树从左到右的排序是有顺序 的,不能颠倒次序。称该树为有序树。 14. 无序树
若一棵树中所有子树的次序无关紧要,则称为 无序树。 15.森林(树林)
ppt课件
7
A
EB KL
F
D HJ MI
C
G
嵌套集合
A
B
A
E
K
B
C
D
L F
C
E
F
G
H
I
J
G D
H
K
L
M
M I
J
凹入表示
( A ( B ( E ( K , L ) , F ) , C ( G ) , D ( H ( M ) , I , J ) ) )
广p义pt课表件
8
基本术语
1.结点 指树中的一个数据元素,一般用一个字母表示。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ppt课件
12
6.2 二叉树 6.2.1 二叉树的定义
二叉树或为空树,或是由一个根结点加上两棵分别称为左子
树和右子树的、互不交的二叉树组成。
根结点
A
右子树
B
E
C
F
左子树
D
ppt课件
G HK
13
二叉树的五种基本形态:
空树
只含根结点
N
右子树为空树 左子树为空树
ppt课件
1
A
A
B
C
D
E
F
G
H
IΒιβλιοθήκη Baidu
J
KL
M
T1
T2
ppt课件
T3
2
ADT Tree{ 数据对象 D:D是具有相同特性的数据元素的集合。 数据关系 R:若D为空集,则称为空树;
若D仅含有一个数据元素,则R为空集,否则R={H},H是如下二元关系: (1)在D中存在唯一的称为根的数据元素root,它在关系H下无前驱; (2)若D-{root},则存在D-{root}的一个划分D1,D2…Dm(m>0), 对任意jk(1j,km)有DJDK=,且对任意的i(1 i m ),存在唯一数据元 素xi Di ,<root,xi>H; (3)对应于D-{root}的划分,H-{<root,x1>,…<root,xm>}有唯一的一 个划分H1, H2,…Hm(m>0),对任意jk(1j,km)有HjHk=,且对任意 i(1 i m ),Hi是Di上的二元关系,(Di,{Hi})是一棵符合本定义的树,
((4)Dr(,D{H1,r}){H是1}一)棵是符一合棵本符定合义本的定二义叉的树二,叉称树为,根称的为右根子的树左。子树,
基本操作:
} ADT BinaryTree
ppt课件
15
6.2.2 二叉树的性质
性质 1 :在二叉树的第 i 层上至多有2i-1 个结点。
Assign(T, cur_e, value) // 给当前结点赋值
InsertChild(&T, &p, i, c) // 将以c为根的树插入为结点p的第i棵子树
ppt课件
6
删除类: ClearTree(&T) // 将树清空 DestroyTree(&T) // 销毁树的结构
DeleteChild(&T, &p, i) // 删除结点p的第i棵子树
3.树叶(叶子) 度为0的结点,称为叶子结点或树叶,也叫终端
结点。 4.孩子结点
若结点X有子树,则子树的根结点为X的孩子结 点,也称为孩子,儿子,子女等。如图6-1(c) 中A的孩子为B,C,D。 5.双亲结点
若结点X有子女Y,则X为Y的双亲结点。
ppt课件
9
6.祖先结点 从根结点到该结点所经过分支上的所有结点
为该结点的祖先。 7.子孙结点
某一结点的子女及子女的子女都为该结点子 孙。 8.兄弟结点
具有同一个双亲的结点,称为兄弟结点。 9.分支结点
除叶子结点外的所有结点,为分枝结点,也 叫非终端结点。 10.层数
根结点的层数为1,其它结点的层数为从根 结点到该结点所经过的分支数目再加1。
RightSibling(T, cur_e) // 求当前结点的右兄弟
TreeEmpty(T) // 判定树是否为空树
TreeDepth(T) // 求树的深度
TraverseTree( T, Visit() ) // 遍历
ppt课件
5
插入类:
InitTree(&T) // 初始化置空树
CreateTree(&T, definition) // 按定义构造树
称为根root的子树。
基本操作P: }ADT Tree
ppt课件
3
基本操作: 查找 插入 删除
ppt课件
4
查找类: Root(T) // 求树的根结点
Value(T, cur_e) // 求当前结点的元素值 Parent(T, cur_e) // 求当前结点的双亲结点 LeftChild(T, cur_e) // 求当前结点的最左孩子
(2)若D-{root},则存在D-{root}={D1,Dr},且
D1Dr;
(上 xH3r1>)的, H若关HrD},;系1且H存,1在则HDD;r1上中若的存D关在r系唯,H一则r的DH元r;中素H存x=1在,{<<唯rrooo一ott,,的xx元11>>素,<Hxr,or且,o存<t,r在oxorD>t1,,
第六章 树和二叉树
6.1 树的定义和基本术语
定义:树(Tree)是n(n>=0)个结点的有限集T,T为空时 称为空树,否则它满足如下两个条件: (1)有且仅有一个特定的称为根(Root)的结点; (2)其余的结点可分为m(m>=0)个互不相交的子集 T1,T2,T3…Tm,其中每个子集又是一棵树,并称其为 子树(Subtree)。
左右子 树均不 为空树
N
N
N
L
RL
R
ppt课件
14
二叉树的抽象数据类型
ADT BinaryTree{
数据对象D:D是具有相同特性的数据元素的集合。
数据关系R:
若D=,则R=,称二叉树为空二叉树;
若D,则R={H},H是如下二元关系:
(1)在D中存在唯一的称为根的数据元素root,它在关系H下无前 驱;
若干棵互不相交的树组成的集合为森林。一棵 树可以看成是一个特殊的森林。
ppt课件
11
对比树型结构和线性结构的结构特点
线性结构
树型结构
第一个数据元素 (无前驱)
根结点 (无前驱)
最后一个数据元素 (无后继)
多个叶子结点 (无后继)
其它数据元素 (一个前驱、
一个后继)
其它数据元素 (一个前驱、
多个后继)
ppt课件
10
11. 树的高度(深度) 树中结点所处的最大层数称为树的高度,如空
树的高度为0,只有一个根结点的树高度1。 12.树的度
树中结点度的最大值称为树的度。 13. 有序树
若一棵树中所有子树从左到右的排序是有顺序 的,不能颠倒次序。称该树为有序树。 14. 无序树
若一棵树中所有子树的次序无关紧要,则称为 无序树。 15.森林(树林)
ppt课件
7
A
EB KL
F
D HJ MI
C
G
嵌套集合
A
B
A
E
K
B
C
D
L F
C
E
F
G
H
I
J
G D
H
K
L
M
M I
J
凹入表示
( A ( B ( E ( K , L ) , F ) , C ( G ) , D ( H ( M ) , I , J ) ) )
广p义pt课表件
8
基本术语
1.结点 指树中的一个数据元素,一般用一个字母表示。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ppt课件
12
6.2 二叉树 6.2.1 二叉树的定义
二叉树或为空树,或是由一个根结点加上两棵分别称为左子
树和右子树的、互不交的二叉树组成。
根结点
A
右子树
B
E
C
F
左子树
D
ppt课件
G HK
13
二叉树的五种基本形态:
空树
只含根结点
N
右子树为空树 左子树为空树
ppt课件
1
A
A
B
C
D
E
F
G
H
IΒιβλιοθήκη Baidu
J
KL
M
T1
T2
ppt课件
T3
2
ADT Tree{ 数据对象 D:D是具有相同特性的数据元素的集合。 数据关系 R:若D为空集,则称为空树;
若D仅含有一个数据元素,则R为空集,否则R={H},H是如下二元关系: (1)在D中存在唯一的称为根的数据元素root,它在关系H下无前驱; (2)若D-{root},则存在D-{root}的一个划分D1,D2…Dm(m>0), 对任意jk(1j,km)有DJDK=,且对任意的i(1 i m ),存在唯一数据元 素xi Di ,<root,xi>H; (3)对应于D-{root}的划分,H-{<root,x1>,…<root,xm>}有唯一的一 个划分H1, H2,…Hm(m>0),对任意jk(1j,km)有HjHk=,且对任意 i(1 i m ),Hi是Di上的二元关系,(Di,{Hi})是一棵符合本定义的树,
((4)Dr(,D{H1,r}){H是1}一)棵是符一合棵本符定合义本的定二义叉的树二,叉称树为,根称的为右根子的树左。子树,
基本操作:
} ADT BinaryTree
ppt课件
15
6.2.2 二叉树的性质
性质 1 :在二叉树的第 i 层上至多有2i-1 个结点。
Assign(T, cur_e, value) // 给当前结点赋值
InsertChild(&T, &p, i, c) // 将以c为根的树插入为结点p的第i棵子树
ppt课件
6
删除类: ClearTree(&T) // 将树清空 DestroyTree(&T) // 销毁树的结构
DeleteChild(&T, &p, i) // 删除结点p的第i棵子树