- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二叉树性质1性质1:在二叉树的第i层上最多有2i-1个结点(i≧1)。证明:用数学归纳法证明。当i=1时:只有一个根结点,21-1=20=1,命题成立。现假设当i1时,处在第i-1层上至多有2(i-1)-1个结点,由归纳假设知,第i-1层上至多有2i-2个结点。由于二叉树每个结点的度最大为2,故在第i层上最大结点数为第i-1层上最大结点数的2倍。即2×2i-2=2i-1 证毕数据结构1二叉树性质2性质2:深度为k的二叉树最多有2k-1个结点(k≧1)。证明:深度为k的二叉树的最大结点数为二叉树中每层上的最大结点数之和。由性质1知,二叉树的第1层、第2层⋯第k层上的结点数至多有:20、21…2k-1。∴总的结点数至多有:20+21+…+2k-1=2k-1 证毕数据结构2二叉树性质3性质3:对任何一棵非空二叉树T,如果其叶子结点数为n0,度为2的结点数为n2,则n0=n2+1。证明:设二叉树中度为1的结点数为n1,二叉树中总结点数为N,因为二叉树中所有结点均小于或等于2,则有:N=n0+n1+n2再看二叉树中的分支数:除根结点外,其余每个结点都有唯一一个进入分支,而所有这些分支都是由度为1和2的结点射出的。设B为二叉树中的分支总数,则有:N=B+1∴B=n1+2*n2∴N=B+1=n1+2*n2+1∴n0+n1+n2=n1+2*n2+1即n0=n2+1 证毕数据结构3二叉树性质4性质4:具有n个结点的完全二叉树的深度为⌈㏒2(n+1)⌉。证明:假设完全二叉树的深度为k,根据性质2及完全二叉树的定义有:2k-1-1n≦2k-1取对数得:k-1㏒2(n+1)≦k,因为k是整数。∴k=⌈㏒2(n+1)⌉ 证毕数据结构4二叉树性质5性质5:如果对一棵有n个结点的完全二叉树(其深度为└㏒2n┘+1)的结点按层序编号(从第1层到第└㏒2n┘+1层,每层从左至右),对任一结点i(1≦i≦n)有:如果i=1,则结点i是二叉树的根,无双亲;如果i1,则其双亲是结点└i/2┘。如果2in,则结点i无左孩子(结点i为叶子结点);否则其左孩子是结点2i。如果2i+1n,则结点i无右孩子;否则其右孩子是结点2i+1。证明(略)数据结构5二叉树的顺序存储结构用一组地址连续的存储单元(一维数组)存储二叉树中的结点,并且结点的存储位置(数组下标)能体现结点之间的逻辑关系,如双亲与孩子、左右兄弟关系等。二叉树顺序存储结构的类型定义:#defineMAX_SIZE100typedeftelemtypesqbitree[MAX_SIZE];对于完全二叉树,编号为i的结点元素存储在一维数组下标值为(i-1)的分量中;对于一般的二叉树,仍将其按完全二叉树编号,只不过把不存在的结点设置为⋀;最坏的情况下,一棵深度为k的斜树,只有k个结点,却需要分配长度为2k-1的一维数组。顺序存储结构一般只用于完全二叉树。数据结构6二叉树的顺序存储结构数据结构7二叉树的链式存储结构结点的类型及其定义①二叉链表结点有三个域:一个数据域,两个分别指向左右子结点的指针域。typedefstructBTNode{ElemTypedata;structBTNode*Lchild,*Rchild;}BTNode;②三叉链表结点基于二叉链表,增加一个指针域,用来指向结点的父结点。typedefstructBTNode_3{ElemTypedata;structBTNode_3*Lchild,*Rchild,*parent;}BTNode_3;数据结构8(b)三叉链表结点二叉树的链式存储结构二叉树的链式存储形式有一棵一般的二叉树,如图(a)所示。以二叉链表和三叉链表方式存储的结构图分别如图(b)、图(c)所示。数据结构9第6讲二叉树及其应用遍历二叉树和线索二叉树森林与二叉树的转换赫夫曼树及其应用10数据结构遍历二叉树二叉树的遍历(TraversingBinaryTree)是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅访问一次。二叉树的遍历次序不同于线性结构(从头至尾、循环、双向等简单遍历),树的结点之间不存在唯一的前驱-后继关系,选择的访问方式不同,遍历的次序就不同。两个关键词:访问和次序;访问:指对结点做某种处理,如输出打印、修改结点值等;次序:二叉树是一种非线性结构,每个结点都可能有两棵子树,因此需要寻找一种规律,以便使二叉树上的结点能排列在一个线性队列上,从而便于遍历。数据结构11二叉树的遍历方法根据二叉树的递归定义,二叉树是由3个基本单元组成:根结点、左子树和右子树。若能依次遍历这三部分,便是遍历了整个二叉树。以L、D、R分别表示遍历左子树、遍历根结点和遍历右子树,则有六种遍历方案:DLR、LDR、LRD、DRL、RDL、RL
文档评论(0)