数据结构1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A
A: 是根结点,同时是B、C、 D结点的父结点或双亲结点
D
H L I
B
E J K F
C
G
B: 是E、F的父结点,E、F是 B的子结点或孩子结点 J、K、L、F、G、I:是叶 子结点
1.4 树与二叉树
1.4.1 树的定义和基本术语 1.树的定义 2.树的基本概念(相关术语) 5)兄弟:同一个双亲的孩子结点之间互称兄弟。
(1)有且仅有一个特定的根的结点。 (2)其余的n-1个结点可划分为m(m>0)个互不相交的有限集 T1,T2,…,Tm,其中Ti又是一棵树,称为根的子树。
示意图:
T1={B,E,F,J,K} T2={C,G} T3={D,H,I,L}
T1 T2
T3
1.4 树与二叉树
1.4.1 树的定义和基本术语 1.树的定义 2.树的基本概念(相关术语)
2 2
3 3
4 4
5 5
6 0
7 0
8 0
9 0
10 6
11 7
返回
存储 结构
(b) (c)
1 1
2 2
3 3
4 4
5 5
6 0
7 0
8 0
9 0
10 6
11 7
优点:适用于满二叉树和完全二叉树,按结点从上至 下,从左到右顺序存放,结点序号唯一反映出结点间 逻辑关系,又可用数组下标值确定结点位置。 缺点:对一般二叉树,需增加许多空结点将一棵二 叉树改造成完全二叉树,浪费大量存储空间。(否则 数组元素下标间不能反映各结点间逻辑关系)
填空题: 1. 某二叉树中度为2的结点有18个, 则该二叉树中有_____叶子结点。( 05.4月 ) 19
返回
1.4 树与二叉树
1.4.2 二叉树 1.二叉树的定义 2.二叉树的性质 3.二叉树的存储结构
(1)顺序存储结构: 用一组连续的存储单元存放二叉树中的结点
存储 结构
(b) (c)
1 1
第1章
数据结构
10 65
1.1 基本数据结构与算法
1.2 线性表
865
1.3 栈和队列
1.4 树和二叉树
1.5 查找
1.6 内部排序
姓名 学号 成绩 班级 机97.6
李红 9761059 95
1.4 树和二叉树 1.4.1 树的定义和基本术语
1.4.2 二叉树
1.4.3 遍历二叉树
1.4 树与二叉树
A ^ A B C ^ C ^ D E B D F
^
E
^
^
F
^
在n个结点的二叉链表中,有n+1个空指针域 返回
1.4 树与二叉树
1.4.3 遍历二叉树 定义:按照一定规律对二叉树中的每个结点访问一次 目的:非线性结构线性化。二叉树是非线性结构,经过一次 完整遍历,可将各结点的非线性排列变为某种意义的线性序 列。 一棵二叉树的组成: 根结点 D(访问根结点) 左子树 L(遍历左子树) 右子树 R(遍历右子树) 3种遍历方式:
1.4 树与二叉树
1.4.1 树的定义和基本术语 1.树的定义 2.树的基本概念(相关术语)
13)有序树:如果将树中结点的各子树看成从左至 右是有次序的(即不能互换),则称该树为有序树。 否则为无序树。在有序树的最左边的根称为第一个 孩子,最右边的称为最后一个孩子。 14)森林:是m(m≥0)棵互不相交的树的集合。对 树中根结点而言,其子树的集合即为森林。由此, 可用森林和树相互递归的定义来描述树。 因为树的每个结点的度不同,存储困难,使对 树的处理算法很复杂,所以引出二叉树的讨论。
1)根结点: 没有前驱的结点只有一个,称为根结点。
2)双亲(父)结点: 树中每个结点只有一个直接前驱,称为该结 点的双亲结点或父结点。
3)孩子(子)结点:一个结点的子树的根或者后继结点数称为 该节点的孩子结点或子结点。
4)叶子结点(终端结点): 没有子结点(后继)的结点。
1.4 树与二叉树
1.4.1 树的定义和基本术语 1.树的定义 2.树的基本概念(相关术语)
解答:BCBDB
4 8 9
5 10
6
7
5. 根据性质5,可知最后叶子结点为10,其父结点是5,且该结点5是最后一个 非叶子结点,那么从结点 6~10均为叶子结点。(10-6+1)
返回
6.设一棵二叉树中有3个叶子结点,有8个度为1的结点, 则该二叉树中总的结点数是______。 A.12 B.13 C.14 D.15 7.下面关于完全二叉树的叙述中,错误的是______。 A. 除了最后一层外,每一层上结点数均达到最大值 B. 可能缺少若干个左右叶子结点 C. 完全二叉数一般不是满二叉数 D. 具有结点的完全二叉树的深度为[log2n]+1
6)堂兄弟:其双亲在同一层的结点互为堂兄弟。 7)结点的祖先:结点的祖先是从根到该结点所经分支的 所有结点。 8)结点的子孙:以某结点为根的子树中的任一结点都称 为该结点的子孙。
1.4 树与二叉树
1.4.1 树的定义和基本术语 1.树的定义 2.树的基本概念(相关术语)
B的子孙为 E、F、J、K。
练习 1.在一棵二叉树上第4层的结点数最多是______。 A.4 B.8 C.32 D.12 2.在深度为5的满二叉树中,叶子结点的个数为______。 A.32 B.31 C.16 D.15 3.在深度为5的二叉树中,至多有______个结点。 A.32 B.31 C.16 D.15 4.在具有10 个结点的树中,其边的树目为______。 A.11 B.10 C.8 D.9 5.设一棵完全二叉树共有10个结点,则在该二叉树中的叶 1 子结点数为______。 A.9 B.5 C.2 D.4 2 3
空二叉树
仅有
根结点
右子树 为空
左子树 为空
左右子树 均非空
1.4 树与二叉树
1.4.2 二叉树 2 1.二叉树的定义 2.二叉树的性质 8
1
3
4Байду номын сангаас
9
10
5
11 12
6
13 14
7
15
性质1:二叉树的第i层上至多有2 i-1(i 1)个结点。 证明:根据二叉树的特点,结论是显然的。(用归纳法 证明)。 性质2:深度为k的二叉树中至多2k-1个结点。 证明:深度为k的二叉树最多有k层,根据性质1,只要 将第1层到第k层的最大结点数相加,就可得到整个二叉 树中结点的最大值。 21-1 + 2 2-1+……+ 2 k-1 = 2 k-1 (k 1)
A
B C D
B,C,D互为兄弟
G与E、F、H、I互为堂 兄弟结点
E
J K
F
G
H
L
I
L的祖先为A、D、H。
1.4 树与二叉树
1.4.1 树的定义和基本术语 1.树的定义 2.树的基本概念(相关术语) 9) 结点的层次:从根开始定义起,根为第一层,根的孩 子为第二层。若某结点在第k层,则其子树的根就在第k+1 层。 10) 结点的度:一个结点的子树的个数(拥有后继的个数)。 11) 树的度: 所有结点度的最大值。 12)树的深度或高度:树中结点的最大层次称为树的深度。
返回
1.4 树与二叉树
1.4.2 二叉树 1.二叉树的定义 定义:二叉树是n(n0)个结点的有限集,它或为空树 二叉树的五种基本形态 (n=0),或由一个根结点和两棵分别称为左子树和右子树 的互不相交的二叉树构成。 特点:每个结点至多有二棵子树(即不存在度大于2的结 点)二叉树的子树有左、右之分,且其次序不能任意颠倒
(1)前序遍历 (DLR) (2)中序遍历 (LDR) (3)后序遍历 (LRD)
1.4 树与二叉树
返回
1.4 树与二叉树
1.4.2 二叉树 1.二叉树的定义 2.二叉树的性质 3.二叉树的存储结构
(1)顺序存储结构: 用一组连续的存储单元存放二叉树中的结点
(2) 链式存储结构:每个结点由数据域、左指针域和右指针域组成。 lchild Data rchild
返回
lchild Data rchild
度为0的结点没有下连的边, 度为1的结点下连的边为1, 度为2的结点下连的边为2
1.4 树与二叉树
1.4.2 二叉树 1.二叉树的定义 2.二叉树的性质 满二叉树
定义:如果一个二叉树深度为K,结点数为2k-1,则称为满 二叉树
特点:除最后一层外,每一层所有结点都有两个子结点。 1 满二叉树 2 3
10.结论“__________”是正确的 A. 二叉树的度为2 B. 树中结点的度可以小于2 C. 二叉树中至少有一个结点的度为2 D. 二叉树中任何一个结点的度为2 11. 假定根结点的层次是0,含有7个结点的的二叉树的最小树深是( A ) 3 B) 4 C) 2 D) 5 解答:CABC 返回 )
1.4.1 树的定义和基本术语 树型结构是一类重要的非线性数据结构,元素结点间存在明 显的分支和层次关系。现实世界中,能用树的结构表示的例子: 学校的行政关系、书的层次结构、人类的家族血缘关系等。
A
T1 E
B
C
D
F
G
H
I
J
K
L
T2
M
T3
1.4 树与二叉树
1.4.1 树的定义和基本术语 1.树的定义 概念:树是n(n≥0)个结点构成的有限集合。n=0为空 树;n≠0时,树中结点应该满足两个条件
1.4 树与二叉树
1.4.2 二叉树 1.二叉树的定义 2.二叉树的性质 叶子结点:n0=3
C E B
A
D F
度为2的结点: n2=2
性质3:对任何一棵二叉树T,如果其终端结点数为n0,度 为2的结点数为n2,则n0=n2+1。 证明: (1)结点总数 n=n0+n1+n2 (n1是度为1的结点数) (2)由树的性质:n=B+1,有:n=n1+2*n2+1 由(1)、(2)合并,可推出: 最后得:n0=n2+1
4
8
5
6
7
9 10 11 12 13 14 15
1.4 树与二叉树
1.4.2 二叉树 1.二叉树的定义 2.二叉树的性质
注意:满二叉树 必是完全二叉 树;而完全二 叉树未必是满 二叉树。
完全二叉树 定义: 指深度为k的,有n个结点的,且每一个结点都与深 度为k的满二叉树中编号从1至n的结点一一对应。 特点: 叶子结点只可能在最下面两层上,且最下层叶子结 点集中在树的左部。任一结点, 右分支下子孙结点最大层 次为h,则左分支必为h或h+1。 1 1 2 4 5 6
1.4 树与二叉树
1.4.1 树的定义和基本术语 1.树的定义 2.树的基本概念(相关术语)
A B E J K F C G H L D I
结点A的层次:1 结点L的层次:4 结点的度: A的度为3; C的度为1 F的度为0 树的度: 3 树的深度: 4
注意: 一棵树中,每个结点的度数之和=结点总数-1=树中 边的条数
解答:BB 6. =n0+n1+n2=3+8+(3-1) ( 性质3: n0=n2+1 )
返回
8. 在深度为7的满二叉树中, 叶子结点的个数为___。 (06.4月) A)32 B) 31 C) 64 D) 63 9. 设树T的度为4,其中度为1、2、3、4的结点个数分别为4、 2、1、1,则T中的叶子结点为______。 A. 8 B. 7 C. 6 D. 5
2) 如果2i≤n,其左孩子结点的序号为2i。如2、3、4、5结点) 如果 2i>n,则i结点,无左子结点,显然也没右结点。
(如图中6、7结点) 3)如果2i+1≤n,则序号为i的结点的右孩子结点的序号为 2i+1 (如2、3、4的右结点分别为5,7,9); 如果2i+1>n,则序号为i的结点无右孩子结点。(如5、6、7)
3
2
7 4 6 5 7
非完全二叉树
3
8 9 10
1.4 树与二叉树
1.4.2 二叉树 1.二叉树的定义 2.二叉树的性质 性质4:具有n个结点的完全二叉树的深度k为[log2n]+1 1 证明:根据完全二叉树的定义和性质2可知,当一棵完全 1 二叉树的深度为k,结点个数为n时,第k 层最少有1个结 2 3 2 点,最多为满,故有 3 4 2k-1-1+1≤n≤2k-1 5 6 7 4 即2k-1≤n<2k 对不等式取对数,有 深度为3的完全二叉树结点 深度为3的完全二叉树结点数 k-1≤log 2k-1 最少情况是4, 即> 2n<k-1=3个 数最多情况是2k-1= 7个 由于k是整数,所以有k=[log2n]+1。 【注:此处运算,为向下取整运算】
1.4 树与二叉树
1.4.2 二叉树 1.二叉树的定义 2.二叉树的性质 8 4 9 10 2 5
1 3 6 7
性质5:具有n个结点的完全二叉树,从上至下和从左到右 作用:很容易确定每个结点的父结点、左子和右子结点的位置。 的顺序对所有结点从1开始顺序编号,则对任意结点i有:
1) i=1,该结点是根结点。否则(i>1),其双亲结点序号为i/2。
相关文档
最新文档