Chap5算法与数据结构—C语言描述(第2版)张乃孝编课件.pptVIP

Chap5算法与数据结构—C语言描述(第2版)张乃孝编课件.ppt

  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文档。上传文档
查看更多

树形结构是一类非常重要的非线性数据结构,它是以分支关系定义的层次结构。它在现实世界中广泛存在,在计算机领域中也有广泛应用。本章重点讨论二叉树的存储结构及其各种操作,并研究树和森林与二叉树之间的转换关系。最后给出一些应用实例。第五章树和二叉树

红楼梦家族关系的组织方式贾母贾政贾赦贾琏贾迎春贾元春贾宝玉贾探春...元素间关系?每个结点最多只有一个前驱,但可有多个后继

二叉树:结点的有限集合,这个集合或者为空集,或者由一个根及两棵不相交的分别称作这个根的左子树和右子树的二叉树组成。根本形态:5.1二叉树及其抽象数据类型

根本概念

根本术语父结点、左〔右〕子结点、边a,b兄弟(b和c)、祖先、子孙路径(acdf)、路径长度(acdf为3)结点的层数结点的度数(c是2,d是1)二叉树的高度:二叉树中结点的最大层数(3)树叶(b,e,f)、分支结点(a,c,d)abcdef

aabb两棵不同的二叉数满二叉树:如果一棵二叉树的任何结点或者是树叶,或有两棵非空子树,那么此二叉树称作“满二叉树”〔离散数学中称此树是“正那么的”〕。满二叉树

完全二叉树:如果一棵二叉树至多只有最下面的两层结点度数可以小于2,并且最下面一层的结点都集中在该层最左边的假设干位置上,那么此二叉树称为“完全二叉树”。完全二叉树不一定是满二叉树。

特点:a)叶子结点只可能在最下的两层上出现b)最下层的结点都集中在该层最左边的假设干位置上完全二叉树不一定是满二叉树

1231145891213671014151231145891267101234567123456哪个是完全二叉树?

扩充二叉树:扩充的方法是:把原二叉树的结点都变为度数为2的分支结点,也就是说,如果原结点的度数为2,那么不变,度数为1,那么增加一个分支,度数为0〔树叶〕增加两个分支。在扩充的二叉树里外部结点〔叶结点〕都是新增加的结点。如果原二叉树有n个结点,在扩充的二叉树里这n个结点的度数都是2。因此扩充的二叉树有2n条边,2n+1个结点,除n个原来二叉树结点,还有n+1个是新增加的外部结点,也就是说:在扩充的二叉树里,新增加的外部结点的个数比原来的内部结点个数多1〔性质7〕。

“外部路径长度”E:在扩充的二叉树里从根到每个外部结点的路径长度之和。“内部路径长度”I:在扩充的二叉树里从根到每个内部结点的路径长度之和。E=I+2n(性质8)E=21I=9n=6

1.非空二叉树的第i层上至多有2i〔i?0〕个结点。5.1.2二叉树的性质423167891011121314155第二层上(i=2),有22=4个节点。第三层上(i=3),有23=8个节点。

2.深度为k的二叉树中至多含有2k+1-1个结点(k?0)。423167891011121314155此树的深度k=3,共有23+1-1=15个节点。

3.假设在任意一棵非空二叉树中,有n0个叶子结点,有n2个度为2的结点,那么:n0=n2+1423167891011121314155n0=8n2=7

4.具有n个结点的完全二叉树的深度为5.如果对一棵有n个结点的完全二叉树按层序从0开始编号,那么对任一结点i〔0=i=n-1),有: a〕如果i=0,那么结点i是二叉树的根,无双亲;如果i0,那么其双亲结点是[(i-1)/2]。 b〕如果2i+1n-1,那么结点i无左孩子;否那么其左孩子是结点2i+1。 c〕如果2i+2n-1,那么结点i无右孩子;否那么其右孩子是结点2i+2。例:n=12i=4i=5双亲结点:1双亲结点:2左孩子:9左孩子:11右孩子:10右孩子:无,2*5+212-101210347811569

6.在满二叉树中,叶结点的个数比分支结点个数多1。7.在扩充二叉树中,外部结点的个数比内部结点的个数多1。8.对扩充二叉树,外部路径长度E和内部路径长度I的关系:E=I+2n,n是内部结点个数

5.1.3二叉树的抽象数据类型ADTBinTreeisoperationsBinTreecreateEmptyBinTree(void)创立一棵空的二叉树。BinTreeconsBinTree(BinTreeNoderoot,BinTreeleft,BinTreeright)返回一棵二叉树,其根结点是root,左右二叉树分别为left和right。intisNull(BinTreet)判断二叉树t是否为空。

BinTreeNoderoot(

您可能关注的文档

文档评论(0)

199****4744 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7002121022000045

1亿VIP精品文档

相关文档