- 15
- 0
- 约1.06万字
- 约 17页
- 2018-06-09 发布于浙江
- 举报
第一讲 树及二叉树的概念
【内容索引】
一、 引言 2
二、 树的概念 2
1. 树的定义 2
2. 树的基本术语 3
三、 二叉树 4
1. 二叉树的定义 4
2. 二叉树的性质 4
3. 二叉树的存储结构 7
4. 二叉树的遍历 9
四、 二叉树的运算 10
1. 二叉树的遍历运算 10
实例一 11
2. 二叉链表的生成算法 11
实例二 11
实例三 13
3. 按层次遍历二叉树 14
实例四 14
引言
树是一种重要的非线性数据结构,在树这种数据结构中,所有数据元素之间的关系具有明显的层次特性。
例:
1. 网站设计中的导航结构
2. 操作系统中的目录结构
3.本文的目录结构。
在图1.1中,用图形表示树这种数据结构时,很像自然界中的树,只不过是一棵到长的树,因此,这种数据结构就用树来命名。
图1.1
在解决实际问题中,我们常常会用到树这种数据结构。
例:请你设计一个电子词典,用来查找单词。我们需要考虑两个问题,一是要提高查找和定位的速度;二是要尽量节省存储的空间。显然用线性数据结构不是好的选择,于是就有人提出了用树来解决问题。图1.2就是用树构造的单词查找树,例如要查找ASCII,我们可以从根开始,查找到A,然后是S,接下去是C,这样就很快查找到整个单词。
图1.2
树的概念
树的定义
树(Tree)是由一个或多个结点组成的有限集合T,且满足:
有且仅有一个称为根的结点;
其余结点分成n(n≥0)个互不相交的集合T1, T2, …Tn,其中每个集合都是一棵树,并且称Ti (1≤i≤n) 为根的子树。
显然树是一个递归定义。图1.3是一棵具有13个结点的树,其中A结点是树的根,其余12个结点划分为3个互不相交的子集:
T1 = { B, E ,F, K, L }
T2 = {C ,G }
T3 = { D, H, I, J, M }
T1, T2, T3 均是根A的子树,其本身也都是树。我们还可以继续划分,集合{E, K L}是B的子树,以此类推。所以我们除了用图来表示树的结构,还可用广义表来表示树,例如,图1.3的树用广义表表示如下:
T=(A(B(E(K,L),F)),C(G),D(H(M),I,J)))
图1.3 树的图形表示
树的基本术语
因为树的结构比其他线性结构更复杂,所以我们需要用一些术语来描述结点和结点之间的关系。
根结点
每一棵树都有一个根结点,如图1.3中A结点。根据树的定义,树中的每一个结点都可以看成是它的一个子树的根。如结点B, C, D分别是子树T1, T2, T3的根结点。但是A结点与其它结点不同的是,只有后继结点而没有前趋结点,所以A被称为树的根。
结点的度和树的度
一个结点的子树的个数称为是该结点的度。如根结点A有3个子树,则A结点的度为3;而C结点只有1个子树,则C结点的度为1。
树中度数最大的结点的度为树的度。树T的度是3。
分支结点和叶结点
度为0的结点称为叶结点或端结点。如K, L, F, G, M, I, J, 这些结点都是树的叶结点。度大于0的结点称作分支结点。
子结点和父结点
每个结点的子树的根结点称为该结点的儿子(子结点),而该结点称为子结点的父亲(父结点)。如A结点为B结点的父结点,B为A的子结点。树中的一条边连接两个结点,这两个结点互为父子关系。
有同一个父结点的所有子结点称为兄弟。如B, C, D就互为兄弟。
某结点到整棵树的根结点的路径上的所有结点叫作该结点的祖先。如结点K到根结点A的路径上的所有结点E, B, A,都是结点K的祖先。
结点的层数和树的深度
树既是一种递归结构,也是一种层次结构,树中的每个结点都处在一定的层数上。结点的层数从树根开始定义,设根结点的层号为1,其儿子结点的层号为2,以此类推;若某结点在第L层,则该结点的儿子处于第L+1层。树中结点最大的层号为树的深度。树T的深度为4。
有序树和无序树
若结点的子树有次序排列,且先后次序不能互换,这样的树称为有序树,反之为无序树。
森林
森林是若干棵互不相交的树的集合。若删除图1.3中树T的根结点A,就得到一个森林{T1, T2, T3}。
二叉树
二叉树的定义
如果树中每个结点的子树个数小于或等于2的树,并且各子树的次序不能互换,有左、右子树之分,这样的树称为二叉树。所以二叉树是一种度为2的有序树。
根据定义,二叉树共有5种不同的基本形态,如图1.4所示。
空二叉树;
只有一个根结点的二叉树;
右子树为空的二叉树;
左子树为空的二叉树;
左、右子树非空的二叉树。
二叉树的性质
二叉树具有下列重要性质:
性质1 在二叉树中,第i层的结点总数不超过2i-1(i=1);
性质2 深度为k的二叉树的结点总数不超过2k-1(k=1)。
请看图1.5中的二叉树:
第1层 1个结点,20
第2层 2个结点,2
您可能关注的文档
- 暑期社会实践总结报告(优秀团队).doc
- 数据的分析资料Word 文档1.doc
- 数据结构+实验报告+线性表及其应用(多项式相加、相乘)等.doc
- 数据结构历年试题及答案汇编.doc
- 数据库原理与应用实验指导书(部分啊).doc
- 双臣一城招股说明书.doc
- 广东省广州市番禺区番禺区育龙中学2024-2025学年八年级下学期期中生物学试题(含答案).docx
- 广东省广州市部分地区2022-2023学年八年级下学期期中生物试题(含答案).docx
- 广东省广州市花都区2022-2023学年八年级下学期期中生物试题(含答案).docx
- 广东省广州市花都区2018-2019学年八年级下学期期中考试生物试题(含答案).docx
最近下载
- 2025《麻江县蓝莓产业发展现状调研分析报告》4900字.docx
- 2026年国网安全管理方案.docx VIP
- 2025年北京师范大学学科教学培养方案 .pdf VIP
- 初级消防试题及答案大全.docx VIP
- 核医学教学课件:血液和淋巴显像.ppt VIP
- 重庆市各地方周氏支族源流(1-170支族).doc VIP
- 建筑工程质量管理体系流程图.docx
- 淋巴系统核医学检查课件.ppt VIP
- (高清版)B-T 6003.1-2022 试验筛 技术要求和检验 第1部分:金属丝编织网试验筛.pdf VIP
- (已压缩)TUCST007-2020房屋建筑与市政基础设施工程施工安全风险评估技术标准.docx VIP
原创力文档

文档评论(0)