(4.2)树与二叉树之二叉树的定义与复原

1.线性结构与树形结构的区别

在这里插入图片描述

2.二叉树的基本概念和性质

  • 二叉树的递归定义:二叉树或为空树,或是由一个根结点加上两棵分别称为左子树右子树的、 互不交的二叉树组成
    在这里插入图片描述
  • 二叉树的特点:
    ⑴ 每个结点最多只有两棵子树,即不存结点度大于2的结点;
    ⑵ 子树有左右之分,不能颠倒
    在这里插入图片描述
  • 二叉树的五种基本形态:
    在这里插入图片描述
  • 基本概念:
    (1)节点度:节点所拥有的子树的个数
    eg:所有节点的度<=2;
    (2)叶子:度为0的节点,eg:D,E
    (3)孩子:节点子树的根,eg:节点A子树的根是B
    (4)双亲:孩子节点的上层节点,egB和C节点的上层节点是A,所以A是B和C的双亲
    (5)子孙:是以某节点为根的子树中的任意一个节点,eg:A有两个子树,任意一个节点都是A的子孙
    (6)祖先:从根节点到该节点所经分支上的所有节点,eg:以H节点为例,H沿着这条路径一直到根节点,这条路径上的所有节点都是H节点的祖先
    (7)节点的层次:从根节点起,根是第一层,他的孩子是第二层,孩子的孩子是第三层;
    (8)兄弟:同一个双亲的孩子节点,eg:B和C
    (9)堂兄弟:其双亲在同一层的节点,eg:E和F
    (10)二叉树的度:二叉树中最大节点的度数,二叉树的度为2
    (11)二叉树的深度:二叉树的最大层次数,eg:G和H层数最大,位于第四层,所以二叉树的深度为4
    在这里插入图片描述
  • 两类特殊的二叉树
    (1)满二叉树
    满二叉树:除了叶子节点,其它节点的度都为2;所有叶子节点都在同一层;
    在这里插入图片描述
    (2)完全二叉树
    完全二叉树:节点编号与满二叉树的节点编号是对应的关系
    在这里插入图片描述
  • 二叉树的性质:
    (1)性质 1 : 在二叉树的第 i 层上至多有2^(i-1)个结点。 (i≥1)
    每层的最大结点个数是确定的。
    证明:归纳法证明,i=1时,最多1个节点,第j层,有2^(j-1)个节点,第j+1层,若每个节点有两个孩子,则有:2*2 ^(j-1)个节点,则第j+1层,就有2 ^j个节点,即可证明
    (2)性质 2 : 深度为 k 的二叉树上至多含 2^k-1 个结点(k≥1)。
    深度一定,二叉树的最大结点数也是确定的。
    证明:利用性质1证明,2^0 +21+。。。+2k(一直加到第k层)
    (3)叶结点与双分支结点的关系
    对任何一棵二叉树T,设叶子结点数为n0,度为2的结点数为n2,那么, n0=n2+1。
    证明:n=总的节点个数
    n=n0+n1+n2;
    由节点分支进行计算,n=2n2+n1+1;
    (4)性质4:具有n个结点的完全二叉树的深度为{ l o g 2 n log_2n |+1
    证明:深度为k,最多有 2^k-1 个结点,至少有 2 ^(k-1)-1+1 =2 ^(k-1)个结点;n表示节点数
    2^(k-1)<=n<=2 ^k,k-1<= l o g 2 n log_2n <k,k<= l o g 2 n log_2n +1,取等号时两边相等
    在这里插入图片描述

3.完全二叉树的特点

  • ( 1) 每个结点i的左子树的深度Lhi-其结点i的右子树的深度Rhi等于0或1, 即叶结点只可能出现在最下层或次最下层。
  • (2)完全二叉树结点数n满足2^(k-1)-1<n≤2 ^k-1
  • (3)满二叉树一定是完全二叉树,反之不成立。
    在这里插入图片描述
  • 性质5:对有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1<=i<=n), 有:
    ① 如果i=1, 则结点i是二叉树的根,无双亲;如果i>1, 则其双亲是[i/2](向下取整)
    ② 如果2i>n, 则结点i无左孩子;如果2i<=n, 则其左孩子是2i
    ③ 如果2i+1>n, 则结点i无右孩子;如果2i+1<=n, 则其右孩子是2i+1
    证明:
    假设节点i在第k层,那么他的双亲j是第k-1层的第q个节点(从左往右数),j=2^(k-2)-1+q,i=2 ^(k-1)-1+2(q-1)+1(左孩子的话,偶数),i=2 ^(k-1)-1+2(q-1)+2(右孩子的话,奇数),综上:i=j/2
发布了582 篇原创文章 · 获赞 143 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/u011436427/article/details/104387374