- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构第五章-.ppt
第5章 树和二叉树(Tree Binary Tree) 树适于反应层次关系的数据对象的研究。层次化的数据之间可能有:祖先—后代、上级—下级、整体—部分等其它类似的关系。 5.1.1 树的定义 由一个或多个(n≥0)结点组成的有限集合T, 有且仅有一个结点称为根(root) 当n1时,其余的结点分为m(m≥0)个互不相交的有限集合T1,T2,…,Tm。 每个集合本身又是棵树,被称作这个根的子树 。 树的定义具有递归性,即“树中还有树”。 一棵树至少包含一个树结点,不存在不含树结点的树; 树中结点存在着层次关系,但同一层上的树结点之间是无序的。 一棵树的每个结点都是某个子树的根。 若干术语 5.2.1 二叉树的定义 定义:二叉树是n(n?0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成 特点 每个结点至多有二棵子树(即不存在度大于2的结点) 二叉树的子树有左、右之分,且其次序不能任意颠倒 基本形态 2. 二叉树的定义与树的定义的区别 二叉树存在着空树;但树不能为空。 二叉树中的每一个结点只可能有0个,1个或2个孩子,也就是说,二叉树不存在度大于2的结点;而树中的每个结点可以有多个子树。 二叉树的子树有左右之分,两者不能颠倒;但树的子树一般是无序的。 除以上区别外,上一节引入树的有关术语对于二叉树也适用。 3.满二叉树的定义 5.2.2 二叉树的性质 性质1:在二叉树的第 i 层上最多有2i-1个结点(i≥1)。 用归纳法证明它。 当i=1时,21-1 =1,这时只有一个根结点,显然结论是正确的。 假设,对于所有的j(1≤ji)结论也成立,即第j层上至多有2j -1个结点,那么,我们也可以证明当j=i时结论也成立,证明如下: 由归纳法假设知道,第i-1层上至多有2i - 2个结点,由于二叉树的每个结点至多有两个孩子,所以第i层上最大结点数应为第i-1层上最大结点数的两倍,即第i层上最多结点数为: 2*2i - 2=2i -1。故结论得证。 5.2.2 二叉树的性质 性质2:深度为h的二叉树至多有2h-1个结点。 可以由性质1推出上述结论。显然,深度为h的二叉树的最大结点应为各层最大结点之和即为: (第i层上的最大结点数)= 2i-1=2h-1 5.2.2 二叉树的性质 性质3:包括n(n0)个元素的二叉树的边数为n-1。 证明:二叉树中每个元素(除根结点外)有且仅有一个双亲结点。而孩子结点与双亲结点之间有且仅有一条边,因此包含n个元素的二叉树的边数是n-1。 5.2.2 二叉树的性质 1. 性质1:在二叉树的第 i 层上最多有2i-1个结点(i≥1)。 性质2:深度为h的二叉树至多有2h-1个结点。 性质3:包括n(n0)个元素的二叉树的边数为n-1。 性质4:对于任何一棵二叉树,若其终端结点数为n0,其度为2的结点数为n2,则有: n0=n2+1。 性质6 一棵有n个结点的顺序二叉树,如从左至右、从上至下的,对每个结点从1开始编号,对于其中任意编号为i的结点(1≤i≤n)有: (1)若i?1,则i的父亲是?i/2?;若i=1,则i是根结点,无父亲。 (2)若2i≤n,则i的左孩子是2i;若2in,则i无左孩子。 (3)若2i+1≤n,则i的右孩子是2i+1;若2i+1n,则i无右孩子。 4:具有3个结点的二叉树可能有几种不同形态? 二叉树的抽象数据类型 Dset: 有限元素集合。 Rset: 如果不空,被分为根结点、左子树和右子树;每个子树仍然是一个二叉树。 OPSet: PreOrder(*BT) 二叉树的前序遍历递归算法 PreOrderN(*BT) 二叉树的前序遍历非递归算法 InOrder(*BT) 二叉树的中序遍历递归算法 InOrderN(*BT) 二叉树的中序遍历非递归算法 二叉树的抽象数据类型 PostOrder(*BT) 二叉树的后序遍历递归算法 PostOrderN(*BT) 二叉树的后序遍历非递归算法 LevelOrderTL(*BT) 左至右,上至下层次遍历 LevelOrderTR(*BT)) 右至左,上至下层次遍历 MakeNode(x) 构造结点 MakeBinaryTree(*root, *left, *right) 联接三个结点为二叉树 BinaryHeight(*BT) 求二叉树的高度 BinaryDelete(*BT) 二叉树的删除算法 5.3.1 二叉树的存储结构 讨论:不是完全二叉树怎么办? 二、链式存储结构用二叉链表即可方便表示。 5.4.4
您可能关注的文档
最近下载
- 烟草考试真题及答案.doc VIP
- 2025年最新人教版八年级(初二)数学上册教学计划及进度表(新课标,新教材).docx
- 外研版高中《英语》(新标准)选择性必修一Unit1 单元整体教学设计附作业设计.docx VIP
- 5.1《论语》十二章 课件(共48张PPT)统编版高中语文选择性必修上册.pptx VIP
- 计算机网络实验报告(8)网络地址转换NAT配置、网络端口地址转换NAPT配置.pdf VIP
- 工程材料及成形技术基础-全套PPT课件.pptx
- 单证员考试试题.pdf VIP
- 地面空压机安装技术措施.docx VIP
- 工程建设法规的案例.ppt VIP
- 农产品食品检验员职业技能竞赛理论考试题库(含答案).docx VIP
文档评论(0)