版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、算法分析与设计(JAVA版)讲师:牛牧树与二叉树概念设计二叉树类 Lesson20树与二叉树的基本概念二叉树类设计树的概念树是由n(n0)个结点构成的满足以下条件的结点集合:(1)当n0时,有一个特殊的结点称为根结点,根结点没有前驱结点;(2)当n1时,除根结点外的其他结点被分成m(m0)个互不相交的集合T1, T2, Tm,其中每一个集合Ti(1im)本身又是一棵结构和树结构类同的子树。树的概念只有根结点的树 一般的树 树的基本概念结点:结点由数据元素和构造数据元素之间关系的指针组成。 结点的度:结点所拥有的子树的个数称为该结点的度。 叶结点:度为0的结点称为叶结点,叶结点也称作终端结点。
2、分支结点:度不为0的结点称为分支结点,分支结点也称 作非终端结点。 孩子结点:树中一个结点的子树的根结点称作这个结点的孩子结点。 树的基本概念双亲结点:若树中某结点有孩子结点,则这个结点就称作它的孩子结点的双亲结点。 兄弟结点:具有相同的双亲结点的结点称为兄弟结点。 树的度:树中所有结点的度的最大值称为该树的度。 结点的层次:从根结点到树中某结点所经路径上的分支数。树的基本概念树的深度:树中所有结点的层次的最大值称为该树的深度。 无序树:树中任意一个结点的各孩子结点的排列没有严格次序的树称为无序树。 有序树:树中任意一个结点的各孩子结点的排列有严格次序的树称为有序树。 森林:m(m0)棵树的集
3、合称为森林。 树的抽象数据类型 数据集合 :树的结点集合,每个结点由数据元素和构造数据元素之间关系的指针组成。 操作集合: (1)双亲结点parent() (2)左孩子结点leftChild() (3)右兄弟结点rightSibling() (4)遍历树traverse(vs) 树的存储结构双亲表示法 双亲表示法就是用指针表示出每个结点的双亲结点。 对于使用仿真指针的双亲表示法来说,每个结点应有两个域,一个是数据元素域,另一个是指示其双亲结点在数组中下标序号的仿真指针域。树的存储结构树及其使用仿真指针的双亲表示法 树的存储结构孩子表示法 孩子表示法就是用指针表示出每个结点的孩子结点。常规指针的
4、孩子表示法树的存储结构双亲孩子表示法 双亲孩子表示法就是用指针既表示出每个结点的双亲结点,也表示出每个结点的孩子结点。树的存储结构树的存储结构孩子兄弟表示法 孩子兄弟表示法就是用指针既表示出每个结点的孩子结点,也表示出每个结点的兄弟结点。二叉树二叉树的定义 二叉树是n(n0)个结点构成的、每个结点最多只有两个子树的有序树。 满二叉树:在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子结点都在同一层上。 完全二叉树:如果一棵具有n个结点的二叉树的逻辑结构与满二叉树的前n个结点的逻辑结构相同。二叉树两棵不同的二叉树二叉树满二叉树和完全二叉树 二叉树抽象数据类型数据集合:二叉树的结点
5、集合,每个结点由数据元素和构造数据元素之间关系的指针组成。操作集合: (1)双亲结点parent(): (2)左孩子结点leftChild() (3)右孩子结点rightSibling() (4)左插入结点insertLeftNode(x) (5)右插入结点insertRightNode(x): (6)左删除子树deleteLeftTree() (7)右删除子树deleteRightTree() (8)遍历二叉树traverse(vs)二叉树的性质 性质1 若规定根结点的层次为0,则一棵非空二叉树的第i层上最多有2i(i0)个结点。 性质2 若规定空二叉树树的深度为-1(即根结点的深度为0),
6、则深度为k的二叉树的最大结点数是2k+1-1(k-1)个。 性质3 具有n个结点的完全二叉树的深度k为不超过log2(n+1)-1的最大整数。 性质4 对于一棵非空的二叉树,如果叶结点个数为n0,度为2的结点数为n2,则有n0= n2+1。二叉树的性质性质5 对于具有n个结点的完全二叉树,如果按照从上至下和从左至右的顺序对所有结点从0开始顺序编号,则对于序号为i的结点,有: (1)如果i0,则序号为i结点的双亲结点的序号为 (i-1)/2(“/”表示整除);如果i=0,则序号为i结点为根结点,无双亲结点。 (2)如果2i+1n,则序号为i结点的左孩子结点的序号为2i+1;如果2i+1n,则序号为i结点无左孩子结点。 (3)如果2i+2n,则序号为i结点的右孩子结点的序号为2i+2;如果2i+2n,则序号为i结点无右孩子结点。二叉树的存储结构二叉树的顺序存储结构 非完全二叉树的顺序存储结构如下图二叉树的存储结构 二叉树的链式存储结构 二叉树的链式存储结构是用指针建立二叉树中结点之间的关系。 二叉链存储结构的每个结点包含三个域 。leftChilddatarightChild二叉树的存储结构二叉链存储结构的二叉树(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年产12000吨十二烷基苯磺酸钠(浓缩洗衣粉)提升改造项目环境风险专项报告
- 物流年终工作总结五篇
- 大班教师演讲稿(14篇)
- 年会方案模板10篇
- 幼儿园大班教案《不许摸》
- 光伏租赁用电协议书(2篇)
- 2025年紫外光固化油墨项目发展计划
- 2025年带钢传输自动纠偏装置项目合作计划书
- 成都四中小升初数学试卷
- 2025年石英玻璃光掩模基片项目合作计划书
- 校园修缮施工方案投标文件
- 十六烷安全技术说明书(msds)
- 网上外卖系统分析报告-课程设计报告
- 2024浙江省建筑安全员B证(项目经理)考试题库
- Stevens-Johnson综合征及中毒性表皮坏死松解症课件
- 初中数学-探索与表达规律教学设计学情分析教材分析课后反思
- 医疗废物处置流程图3个
- 中央财经大学产业经济学
- 设计投标书范本
- 23所行政管理博士点学校之一
- SWITCH塞尔达传说旷野之息-1.6金手指127项修改使用说明教程
评论
0/150
提交评论