第6章树和二叉树、算法与数据结构.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文档。上传文档
查看更多
第6章树和二叉树、算法与数据结构

插入右子结点(右孩子) int InsR(BinTNode *p, datatype x) { BinTNode *q; if(p==NULL) return 0; //插入失败返回0 q=(BiTNode *)malloc(sizeof(BiTNode)); q-data=x; q-lchild=NULL; q-rchild=NULL; if(p-rchild==NULL) p-rchild=q; else { q-rchild=p-rchild; //q-lchild=p-rchild; p-rchild=q; } return 1; //插入成功返回1 } 第6章 树和二叉树 6.1 树的定义和基本术语 6.2 二叉树 6.3 遍历二叉树和线索二叉树 5.4 树和森林 6.5 哈夫曼树和应用 6.1 树的定义和基本术语 树(Tree):是一个结点集合T = {nd1, nd2, … ndn},且T ? ?时应满足以下两个条件: (1)有且只有一个特定结点称为根(root) (2)其余结点分为m个不相交子集, T1、 T2、… Tm,每个子集本身又是一棵树,称其为根结点的子树。 若子树从左到右是有序的(不可调换),则称为有序树,否则称为无序树 结点的度:结点所拥有的子树数量称为该结点的度 树的度:所有结点的度的最大值 (孩)子结点与父(双亲)节点:结点的子树的根结点称为该结点的(孩)子结点;相应的,该结点称为子结点的父节点 兄弟结点:具有相同父结点的结点称为兄弟结点 路径:对于树中的结点所构成的一个序列(k1, k2, … kn),若?1?in,ki为ki+1的父节点,则称该序列为从k1到kn的路径 祖先和子孙:一个结点的祖先是从根节点到达该结点的路径上所经过的结点,而子孙结点是其所有子树上的结点 树的高度(深度):树的最大层次数,称为树的高度,根结点为第1层;两个结点处在同一层次但不为兄弟,称为堂兄弟结点。 森林:n棵互不相交的树称为森林,一棵树删除根结点,即称为森林 6.2.1二叉树的定义 定义:二叉树是n(n?0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成 特点 每个结点至多有二棵子树 二叉树的子树有左、右之分,且其次序不能任意颠倒 五种基本形态 6.2 二叉树 ? 右 子树 左 子树 右 子树 左 子树 基本术语 结点(node)——表示树中的元素,包括数据项及若干指向其子树的分支 结点的度(degree)——结点拥有的子树数 叶子(leaf)——度为0的结点 分支结点——度0的结点 左孩子、右孩子(child)——结点子树的根称为该结点的孩子 双亲(parents)——孩子结点的上层结点 兄弟(sibling)——同一双亲的孩子 祖先、子孙——如果有一条路径从结点M到结点N,那么M就称为N的祖先,N成为M的子孙 树的度——一棵树中最大的结点度数 结点的层次(level)——从根结点算起,根为第一层,它的孩子为第二层…… 深度(depth)——树中结点的最大层次 A B D E F H J K L M 结点A的度:2 结点B的度:2 结点M的度:0 叶子:K,L,F,M,J 结点A的孩子:B,D 结点B的孩子:E,F 结点J的双亲:D 结点L的双亲:E 结点B,D为兄弟 结点K,L为兄弟 树的度:2 结点A的层次:1 结点M的层次:4 树的深度:4 结点F,H为堂兄弟 结点A是结点F,H的祖先 6.2.2 二叉树的主要性质 性质1: ? 第i层上最大结点数是第i-1层的2倍,即  故命题得证 证明:用归纳法证明之 ?i=1时,只有一个根结点 是对的 ?假设对所有j(1?ji)命题成立, 即第j层上至多有 个结点 ③那么,第i-1层至多有   个结点 又二叉树每个结点的度至多为2 性质2:深度为k的二叉树至多有 个结点(k?1) 证明:由性质1,可得深度为k 的二叉树最大结点数是 性质3:对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1 证明:n1为二叉树T中度为1的结点数 因为二叉树中所有结点的度均小于或等于2 所以其结点总数n=n0+n1+n2 设B为分支总数,则n=B+1 又:B=n1+2n2 于是,n=B+1=n1+2n2+1=n0+n1+n2 ?n0=n2+1 A B D E F H J K L M 几种特殊形式的二

文档评论(0)

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

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

1亿VIP精品文档

相关文档