树、52二叉树-新教材.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
树;目录;树的定义;树的定义;树的定义;树的定义;树的定义;树的定义;树的定义;树的定义;树的定义;树的定义;A;有序树:如果树中结点的各棵子树看成是从左到右有次序的,则称该树为有序树;森林:是树的集合。0个或多个不相交的树组成森林。;ADT Tree{ 数据: 树是结点的有限集合,它或者为空集,或者由一个根结点和若干棵互不相交的子树组成。 运算: InitTree(T):构造一棵空树T。 DestroyTree(T):销毁树T。 Create(T):建立以T为根的树。 ClearTree(T):若树T存在,则将树T清空。 Empty(T):若树T为空树,返回TRUE,否则返回FALSE。 Depth(T):返回T的高度。 Root(T):返回T的根结点。 Value(T,e):e是树T中的一个结点,返回此结点的值。 Assign(T,e,value):e是树T中的一个结点,将e的值赋值为value。 Parent(T,e):返回树T中e结点的双亲;若e是根结点,则返回空。 LeftChild(T,e):返回树T中e结点的最左边的孩子;若e是叶子,返回空。 RightSibling(T,e):若树T中e结点有兄弟结点,则返回其右兄弟,否则返回空。 InsertChild(T,t,lr,i):将结点i插入到t所指结点的左或右子树。lr值为0时插入到t的左子树,i成为左子树的根结点;lr值为1时插入到t的右子树,i成为右子树的根结点。 DeleteSubTree(T,t,lr):删除二叉树T中t所指结点的左或右子树。其中,t指向二叉树T中的某个结点,lr值为0时删除t的左子树,lr值为1时删除t的右子树。 Transverse(T):按照某种次序对树T的所有结点进行访问一次操作。 };树的存储表示;1. 双亲表示法 每个结点有两个域:Data和Parent。Parent域为指向该结点的双亲结点的下标。根结点无双亲,Parent域设为-1。 可以对树中结点按自上而下、自左向右(按层次)的次序顺序存储起来。;2. 孩子表示法;3. 孩子兄弟表示法;目录;二叉树的定义与性质;二叉树的定义;二叉树(binary tree)结点的有限集合 可以为空集 可以由一个根和两棵互不相交的子树组成 左子树+右子树,均是二叉树;树与二叉树的区别: 一般树的子树之间是无序的,而二叉树中结点的子树要区分左、右子树,即使只有一棵子??? 树中每个节点可有0棵或若干子树。而二叉树的每个节点最多只能有2棵子树。;性质1:二叉树的第i(i?1)层上至多有2i-1 个结点(归纳法证明) 当i=1时,二叉树至多只有一个结点,结论成立。 设当i=k时结论成立,即二叉树上至多有2k-1 个结点 当i=k+1时 ∵每个结点最多只有两个孩子, ∴第k+1层上至多有2*2k–1 =2k个结点,性质成立;性质1、2的图形解释;性质2 高度为h的二叉树上至多有2h–1个结点。 当h=0时,二叉树为空二叉树。 当h0时,利用性质1,高度为h的二叉树中结点的总数最多为:;性质1、2的图形解释;性质3 任意一棵二叉树中,若叶结点的个数(度为0)为n0,度为2的结点的个数为n2,则必有n0=n2+1 设二叉树的度为1的结点数为n1,树中结点总数为n,则n=n0+n1+n2 ①(∵二叉树中只有度为0、1、2三种类型的结点) 设分支数为B(树枝),n个结点的二叉树,除了根结点外,每个结点都有一个分支进入,则B=n-1;分支是由度为1或者度为2的射出的,又有B=2n2+n1; 则有:n-1=2n2+n1 ?n=2n2+n1+1……② 由① ②可得到: n0+n1+n2=2n2+n1+1 ? n0+n2=2n2 +1 即n2=n0-1。;性质4 包含n个元素的二叉树的高度至少为 ?log2 (n+1)? ,最大为n。 根据性质2,高度为h的二叉树最多有2h –1个结点,因而n?2h –1, 则有h ? log2(n+1)。 由于h是整数,所以h? ?log2 (n+1)?。;特殊的二叉树;定义 高度为h的二叉树恰好有2h –1个结点时称为满二叉树;0;定义 扩充二叉树也称2-树,其中除叶子结点外,其余结点都必须有两个孩子。;完全二叉树的性质;?;二叉树的抽象数据类型;ADT 5.2 BinaryTree { 数据: 二叉树是结点的有限集合,它或者为空,或者由一个根结点和左、右子二叉树组成。 运算: InitBinaryTree(T):构造一棵空二

文档评论(0)

shujukd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档