数据结构-树

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
n0=n2+1
跳转到第一页
4、性质4:
具有n个结点的完全二叉树的 深度为log 2 n 1
5、性质5:
如果对一棵有n个结点的完全二叉树的结 点按层序编号,则对任一结点i(1in), 有:
(1) 如果i=1,则结点i是二叉树的根,无 双亲;如果i>1,则其双亲是i/2 (2) 如果2in,则其左孩子是2i;如果 2i>n,则结点i无左孩子; (3)如果2i+1n,则其右孩子是2i+1; 如果2i+1>n,则结点i无右孩子;
§5.1 树的定义和基本术语
一、树的定义 树是由n个结点构成的有限集合。 当n=0时,称为空树。 在一棵非空树中(n>0)中,有且仅有
一个特定的结点,称根的结点;其余结点 可T棵2…分树…,为且Tm称m个,为(其根m中的≥,0子)每树互一。不个相集交合的本集身合又T是1,一
跳转到第一页
※ 特点:
跳转到第一页
※结点的层次(level)——从根结点算起,根为第一 层,它的孩子为第二层…… ※深度(depth)——树中结点的最大层次数 ※森林(forest)——m(m0)棵互不相交的树的集合 ※有序树- 树中结点的各子树从左到右是有次序的, 否则为无序树。
例: 如下图5.2所示,回答问题:
跳转到第一页
结点A的度:3 结点B的度:2 结点M的度:0 树的度:3
A
B
C
D
结点A的层次:1 结点M的层次:4
结点A的孩子:B,C,D 结点B的孩子:E,F
E
F GH I J
KL
M
图5.2
叶子:K,L,F,G,M,I,J
树的深度:4
结点I的双亲:D 结点L的双亲:E
结点B,C,D为兄弟 结点K,L为兄弟
结点F,G为堂兄弟 结点A是结点F,G的祖先
第五章 树
本章内容: * 树的定义和基本操作; * 二叉树的定义及遍历、存储结构; * 树的应用;
重点: * 树的定义 * 二叉树的定义及遍历序列
跳转到第一页
内容
§5.1 树的定义和基本术语 §5.2 二叉树的定义及存储结构 §5.3 二叉树的遍历 §5.4 树的存储 §5.5 树的应用
跳转到第一页
见书上P70 3、几种特殊的二叉树
(1)满二叉树:
定义1:在一个二叉树中,若第i层的结 点数为2i-1,则称此层的结点数是满的,当树 中的每一层都是满的,则称此二叉树为满二 叉树。
定义2:如果一个二叉树中,除最下一 层的各结点度数为0以外,其它各层结点的度 数均等于2,则此二叉树为满二叉树。
特点:每一层上的结点数都是最大结点数。 跳转到第一页
跳转到第一页
※ 特点: (1)每个结点至多有二棵子树(即不存在度大于2的
结点);
(2)二叉树的子树有左、右之分,且其次序不能任 意颠倒;
一般地,二叉树有五种基本形态,如图5.3所示。
A
A
A
A
空二叉树
只有根结点 的二叉树
B 右子树为空
跳转到第一页
B
B
C
左子树为空
左、右子树 均非空
图5.3
2、二叉树的基本操作
跳转到第一页
三、树的表示方法
a
1、直观表示法:图5.3表示法
b
2、文氏图法:
d ef
c gh
b
e
d
ij
ij
a
f
gh
跳转到第一页
3、嵌套括号法
a ( b ( d, e ( i, j ), c ( g, h ) ) )
4、凹入表示法
a b d e i j f c g h
跳转到第一页
四、树的基本操作 见书上P68
又二叉树每个结点的度至多为2
第i层上最大结点数是第i-1层的2倍,即2 2i2 2i1
故命题得证
2、性质2
一颗深度为k的二叉树中,最多有2k-1个结点(k1)
跳转到第一页
证明:由性质1,可得深度为k 的二叉树最大结点数是:
k
k
(第i层的最大结点数 ) 2i1 2k 1
i 1
i 1
3、性质3: 对任何一棵二叉树,如果其叶子结点
特点:
※深度为k的完全二叉树,其前k-1层是一颗 满二叉树;
上。
※最后第k层的结点都尽量排在靠左的位置
跳转到第一页
二、二叉树的性质
1、性质1: 在二叉树的第 i层上至多有 2i1个结点(i 1)
证明:用归纳法证明之
i=1时,只有一个根结点,2i1 20 1 是对的
假设对所有j(1j<i)命题成立,即第j层上至多有 2 j1个结点 那么,第i-1层至多有 2 i 2 个结点
满二叉树
1
2
3
4
5
6
7
8 9 10 11 12 13 14 15
1
2
3
4
5
6
7
8 9 10 11 12
完全二叉树
跳转到第一页
1
2
Baidu Nhomakorabea
3
4
5
6
7
1
2
3
4
5
6
(2)完全二叉树:
定义:一颗深度为k,有n个结点的二叉树当且 仅当其每一个结点都与深度为k的满二叉树中编号 (自左而右)从1至n的结点一一对应时,称为~。
• 树中至少有一个结点—根,它没有前驱结点, 除根结点之外的所有结点有且只有一个前 驱结点;
• 树中各子树是互不相交的集合,树中所有 结点可以有零个或多个后继结点。
任意有限两集个合集T合1,不T能2…有…相T重m应的该结“点互。不相交”,即 ※ 树的各个结点有不同层次关系,这种关系通常用
图形表示,但与自然界的树木相反,习惯上将整 棵树的根画在最上层,如图5.1所示
跳转到第一页
子树
只有根结点的树 A
有子树的树 A

B
C
D
E
F GH I J
KL
M
跳转到第一页
图5.1
二、树的相关术语
❖结点(node)——表示树中的元素,包括数据 项及若干指向其子树的分支 ❖结点的度(degree)——结点拥有的子树个数 ❖叶子(leaf)——度为0的结点 ❖孩子(child)——结点子树的根称为该结点的 孩子 ❖双亲(parents)——孩子结点的上层结点叫该 结点的~ ❖兄弟(sibling)——同一双亲的孩子 ❖树的度——一棵树中最大的结点度数
数为n0,度为2的结点数为n2,则n0=n2+1
证明:n1为二叉树T中度为1的结点数 因为:二叉树中所有结点的度均小于或等于2 所以:其结点总数n=n0+n1+n2 又二叉树中,除根结点外,其余结点都只有一个分支进入
设B为分支总数,则n=B+1 又:分支由度为1和度为2的结点射出,B=n1+2n2 于是,n=B+1=n1+2n2+1=n0+n1+n2
跳转到第一页
§5.2 二叉树
一、二叉树的定义和基本操作 1、二叉树的定义
一个二叉树是n个结点的有限集合(n≥0),此 集合或者是空集(n=0),或者是由一个根结点及 两棵互不相交的、分别称为左子树和右子树的二叉 树组成。
由上述定义可知,二叉树可以是空集,其根可以 有空的左子树或右子树,或者左、右子树皆为空。
相关文档
最新文档