数据结构与算法树与叉树.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 树与二叉树 第4章 树与二叉树 4.1 树的基本概念 4.1.1树的定义及表示 树:n个结点的有限集(n=0) 4.1.2 树的常用术语及运算 树的结点 结点的度 --- 结点拥有的子树的个数 叶子结点 --- 度为0的结点,又称终端结点 分枝结点 --- 度不为0的结点 树的度 --- 树内结点度的最大值 树的层次 --- 第一层从根结点开始,根的孩子在第二层,依此类推 树的深度 --- 树中结点的最大层次 4.1.2 树的常用术语及运算 孩子(结点) --- 结点的子树的根结点 双亲(结点) --- 结点作为根结点的子树的根结点 兄弟(结点) --- 同一个双亲的孩子结点之间互为兄弟 祖先 --- 从根结点到该结点所经分枝上的所有结点 子孙 --- 以某结点为根的子树中的任一结点都是该结点的子孙 4.1.2 树的常用术语及运算 树的基本运算 (1) setnull(T):初始化操作,置T为空树。 (2) 求根结点ROOT(T)或ROOT(x) 。求树T的根或求结点x所在的树的根结点。若T是空树或x不在任何一棵树上,则函数值为“空”。 (3) 求双亲结点RARENT(T,x) 。求树T中结点x的双亲结点。若结点x是树T的根结点或结点x不在树T中,则函数值为“空”。 (4) 求孩子结点CHILD(T,x,i)。求树T中结点x的第i个孩子结点。若结点x是树T的叶子或无第i个孩子或结点x不在树T中,则函数值为“空”。 (5) 建树creat(x,F)。生成以x结点为根、以森林F为子树森林的树。 (6) 求右兄弟结点RIGHT_SIBLING(T,x) 。求树T中结点x右边的兄弟。若结点x是其双亲的最右边的孩子结点或结点x不在树T中,则函数值为“空”。 4.1.2 树的常用术语及运算 树的基本运算 (7) 插入子树操作addchild(y,i,x)。置以结点x为根的树为结点y的第i棵子树。若原树中无结点y或结点y的子树个数i-1,则空操作。 (8) 删除子树操作delchild(x,i)。删除结点x的第i棵子树。若无结点x或结点x的子树个数i,则空操作。 (9) 遍历树traverse(T)。按某个次序依次访问树中各个结点,并使每个结点只被访问一次。 4.2 二叉树 4.2.1 二叉树的概念 每个结点至多只有二棵子树(即二叉树中不存在度大于2的结点),且二叉树的子树有左右之分,其次序不能任意颠倒 4.2.1 二叉树的概念 二叉树几种基本形态: 4.2.1 二叉树的概念 二叉树的基本操作: (1)求根结点ROOT(BT)或ROOT(x)。求二叉树BT的根结点或求结点x所在二叉树 的根结点。若BT是空树或x不在任何二叉树上,则函数值为“空”。 (2)求双亲结点PARENT(BT,x)。求二叉树BT中结点x的双亲结点。若结点x是二叉树BT的根结点或二叉树BT中无x结点,则函数值为“空”。 (3)求孩子(左孩子、右孩子)结点LCHILD(BT,x)和RCHILD(BT,x)。分别求二叉树BT中结点x 的左孩子和右孩子结点。若结点x为叶子结点或不在二叉树BT中,则函数值为“空”。 (4)初始化二叉树setnull(BT) 。置BT为空树。 (5)建树二叉树CRT_BT(x,LBT,RBT) 。生成一棵以结点x为根、二叉树LBT和RBT 分别为左、右子树的二叉树。 4.2.1 二叉树的概念 二叉树的基本操作: (6)插入子树(左、右子树)INS_LCHILD(BT,y,x)和INS_RCHILD(BT,y,x) 。将以结点x为根且右子树为空的二叉树分别置为二叉树BT中结点y的左子树和右子树。若结点y有左子树/右子树,则插入后是结点x的右子树。 (7)删除子树(左、右子树)DEL_LCHILD(BT,x)和DEL_RCHILD(BT,x)。分别删除二叉树中以结点x为根的左子树或右子树。若x无左子树或右子树,则空操作。 (8) 遍历二叉树TRAVERSE(BT) 。按某个次序依次访问二叉树中各个结点,并使每个 结点只被访问一次。 4.2.2 二叉树的性质 性质1:在二叉树的第i层上至多有2i-1个结点(i≥1)。 4.2.2 二叉树的性质 性质2:深度为k的二叉树至多有2k-1个结点(k≥1),最大结点数=20+21+…2K-1= 2k-1 4.2.2 二叉树的性质 性质3:对于任何一棵二叉树T,若其叶子结点数为n0,2度结点数为n2,则n0=n2+1 4.2.2 二叉树的性质 完全二叉树和满二叉树 一棵深度为k且有2k-1个结点的二叉树称为满二叉树 二叉树的特殊形态—完全二叉树 完全二叉树是指深度为k的、有n个结点的二叉树,当且仅当它的每一个结点都与深度为k的满二叉树中编号从1到n的结点一一对应。 4.2.2

文档评论(0)

beoes + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档