网站大量收购闲置独家精品文档,联系QQ:2885784924

5(选讲)树和二叉树解析.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

**5.2.1二叉树的定义与性质二叉树(BinaryTree)是另一种重要的树型结构。是度为2的有序树,它的特点是每个结点至多有两棵子树。和树结构的定义类似,二叉树的定义也可以用递归形式给出。1.二叉树的递归定义二叉树(BinaryTree)是n(n≥0)个结点的有限集。它或者是空集(n=0),或者同时满足以下两个条件:(1)有且仅有一个根结点;(2)其余的结点分成两棵互不相交的左子树和右子树。5-2二叉树**二叉树与树有区别:树至少应有一个结点,而二叉树可以为空;树的子树没有顺序,但如果二叉树的根结点只有一棵子树,必须明确区分它是左子树还是右子树,因为两者将构成不同形态的二叉树。因此,二叉树不是树的特例。它们是两种不同的数据结构。二叉树有5种基本形态:图5-7二叉树的五种基本形态(a)空二叉树(b)只有根结点的二叉树(c)右子树为空的二叉树(d)左子树为空的二叉树(e)左右子树均不为空的二叉树**两种特殊形态的二叉树:满二叉树和完全二叉树。(1)满二叉树(FullBinaryTree)?深度为k,且有2k-1个结点的二叉树。特点:(1)每一层上结点数都达到最大(2)度为1的结点n1=0,树叶都在最下一层上。结点层序编号方法:从根结点起从上到下逐层(层内从左到右)对二叉树的结点进行连续编号。1237654K=3n=23-1=7满二叉树**(2)完全二叉树(CompleteBinaryTree)?深度为k,结点数为n的二叉树,当且仅当每个结点的编号都与相同深度的满二叉树中从1到n的结点一一对应时,称为完全二叉树。图5-8完全二叉树完全二叉树的特点:(1)每个结点i的左子树的深度Lhi-其结点i的右子树的深度Rhi等于0或1,即叶结点只可能出现在层次最大或次最大的两层上。(2)完全二叉树结点数n满足2k-1-1<n≤2k-1(3)满二叉树一定是完全二叉树,反之不成立。45213**1324653241LH1=3RH1=1LH1-RH1=2非完全二叉树非完全二叉树LH2=0RH2=1LH2-RH2=0-1=-1**2.二叉树的性质性质1在二叉树的第i层上至多有2i-1个结点(i≥1)。性质2深度为k的二叉树至多有2k-1个结点(k≥1)。(深度一定,二叉树的最大结点数也确定)性质3二叉树中,终端结点数n0与度为2的结点数n2有如下关系:n0=n2+1性质4结点数为n的完全二叉树,其深度为?log2n?+l性质5在按层序编号的n个结点的完全二叉树中,任意一结点i(1≤i≤n)有:⑴i=1时,结点i是树的根;否则,结点i的双亲为结点?i/2?(i1)。⑵2i>n时,结点i无左孩子,为叶结点;否则,结点i的左孩子为结点2i。⑶2i+1>n时,结点i无右孩子;否则,结点i的右孩子为结点2i+1。**链式存储结构(二叉链表)设计不同的结点结构,可以构成不同的链式存储结构。常用的有:二叉链表三叉链表线索链表用空链域存放指向前驱或后继的线索**由于二叉树每个结点至多只有2个孩子,分别为左孩子和右孩子。因此可以把每个结点分成三个域:一个域存放结点本身的信息,另外两个是指针域,分别存放左、右孩子的地址。每个结点的结构表示为:其中左链域lchild为指向左孩子的指针,右链域rchild为指向右孩子的指针,数据域data表示结点的值。若某结点没有左孩子或右孩子,其相应的链域为空指针。对应的结构类型定义如下:typedefstructnode{ElemTypedata;structnode*lchild;structnode*rchild;}BTree,*tree;其中,tree是指向根结点的指针。**二叉链表的结点结构lchilddatarchildD二叉树CEBAACBDE∧∧∧∧∧∧二叉链表说明:●一个二叉链表由根指针root唯一确定。若二叉树为空,则root=NULL;若结点的某个孩子不存在,则相应的指针为空。●具有n个结点的二叉链表

文档评论(0)

【晓娣】 + 关注
实名认证
内容提供者

好文档大家想

1亿VIP精品文档

相关文档