一、彻底二叉树(Complete Binary Tree)的定义:code
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层全部的结点都连续集中在最左边,这就是彻底二叉树。
二、满二叉树的定义(full binary tree):百度
国内定义:一个二叉树,若是每个层的结点数都达到最大值,则这个二叉树就是满二叉树。 也就是说,若是一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。 国外定义:满二叉树的结点要么是叶子结点,度为0,要么是度为2的结点,不存在度为1的结点。
注:不知道什么缘由致使这个差别,百度百科建议在国际交流场合,包括学术会议发表论文等都应该使用美国和国际定义.在国内的各类考试场合,好比研究生考试/软考/计算机等级考试等,都应该使用国内教材的定义.在校学生的校级考根据所在学校采用教材状况而定。
三、二叉树的基本性质二叉树
节点的度:节点的子节点的数量为该节点的度。在彻底二叉树中,节点的度最多为2,最少为0。 叶子节点:度为0的节点称为叶子节点。 假设彻底二叉树的总结点树为n,度为0的节点数量为n0,度为1的节点数量为n1,度为2的节点数量为n2,则显然知足n=n0+n1+n2。 性质1:二叉树第i层上的结点数目最多为2^(i-1),(i≥1)。 性质2:深度为k的二叉树至多有(2^k)-1个结点(k≥1)。 n=2^0+2^1+…+2^(k-1)=(2^k)-1故命题正确。 性质3 在任意-棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则no=n2+1。
证实:由于二叉树中全部结点的度数均不大于2, 假设二叉树的总结点树为n,度为0的节点数量为n0,度为1的节点数量为n1,度为2的节点数量为n2, 则结点数之和: n=no+n1+n2 (式子1) 另外一方面,1度结点有一个孩子孩,2度结点有两个子,故二叉树中孩子结点总数是: nl+2*n2+ 树中只有根结点不是任何结点的孩子,故二叉树中的结点总数又可表示为: n=n1+2*n2+1 (式子2) 由式子1和式子2获得: no=n2+1
三、彻底二叉树的性质终端
性质1: 当n为偶数时,n1=1,n为奇数时,n1=0。
证实:
咱们知道彻底二叉树的特色,它缺乏结点时老是出如今叶子层(即最下面一层)的右子树开始连续缺乏;
咱们设彻底二叉树的深度为k(k>1),则从第1层至第k-1层的结点总数为(2^k)-1个(根据二叉树性质2计算出来)且必定是奇数,则第k层的节点数为n-(2^k)-1;
假若n是偶数,则由偶数-奇数=奇数性质可知第k层节点数为奇数,则存在1个度为1的节点;
假若n是奇数,则由奇数-奇数=偶数性质可知第k层节点数为偶数,则不存在度为1的节点。
性质2:具备n个节点的彻底二叉树的深度为k=[log2(n)](向上取整)。 性质3:对一颗具备n个节点的彻底二叉树中的节点从1开始按层序编号,则对于任意的编号为i(1<= i <=n的节点: (1) 若是i=1,则节点i是根节点,无双亲。 (2) 若是i>1,则节点i的双亲节点为[i/2](向下取整) (3) 若是2i<=n,则i的左孩为2i,若是2i>n,则i无左孩 (4) 若是2i+1<=n,则i的右孩为2i+1,不然i无右孩