完全二叉树

1、完全二叉树(Complete Binary Tree)的定义

若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。

2、满二叉树的定义(full binary tree)

国内定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。
         也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。
国外定义:满二叉树的结点要么是叶子结点,度为0,要么是度为2的结点,不存在度为1的结点。

注:不知道什么原因导致这个差异,百度百科建议在国际交流场合,包括学术会议发表论文等都应该使用美国和国际定义.在国内的各种考试场合,比如研究生考试/软考/计算机等级考试等,都应该使用国内教材的定义.在校学生的校级考根据所在学校采用教材情况而定。
3、二叉树的基本性质

节点的度:节点的子节点的数量为该节点的度。在完全二叉树中,节点的度最多为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

3、完全二叉树的性质

 性质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无右孩


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值