二叉树学习笔记

104 阅读3分钟

二叉树有五种形态

  1. 空树
  2. 只有根节点
  3. 只有左子树
  4. 只有右子树
  5. 左右子树都有

二叉树的定义

二叉树是一种树形结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。

二叉树的特性

  1. 二叉树的第i层最多有2^(i-1)个节点。
  2. 深度为k的二叉树最多有2^k-1个节点。
  3. 对于任意一棵二叉树,如果其叶节点数为N0,而度数为2的节点总数为N2,则N0=N2+1。
二叉树的第i层最多有2^(i-1)个节点的推导过程
  1. 当i=1时,第一层只有一个根节点,即2^(1-1)=1个节点,结论成立。
  2. 假设当i=k时,第k层最多有2^(k-1)个节点,即左右子树都满二叉树。
  3. 当i=k+1时,第k+1层的节点是第k层节点的左右子树,而第k层最多有2^(k-1)个节点,所以第k+1层最多有2^(k-1)个左子节点和2^(k-1)个右子节点,即2^(k-1)+2^(k-1)=2^k个节点。
  4. 综上所述,二叉树的第i层最多有2^(i-1)个节点。
深度为k的二叉树最多有2^k-1个节点的推导过程
  1. 当k=1时,深度为1的二叉树只有一个根节点,即2^1-1=1个节点,结论成立。
  2. 假设当k=m时,深度为m的二叉树最多有2^m-1个节点。
  3. 当k=m+1时,深度为m+1的二叉树的节点是深度为m的二叉树的左右子树,而深度为m的二叉树最多有2^m-1个节点,所以深度为m+1的二叉树最多有2^(m+1)-1个节点。
  4. 综上所述,深度为k的二叉树最多有2^k-1个节点。
对于任意一棵二叉树,如果其叶节点数为N0,而度数为2的节点总数为N2,则N0=N2+1,的推导过程
  1. 对于一棵二叉树,其所有节点的度数之和等于2的节点数乘以2,即∑(所有节点的度数)=2*N2。
  2. 对于一棵二叉树,其所有节点的度数之和等于所有节点的子节点数加1,即∑(所有节点的度数)=N0+N1+N22=2N0-1+N2*2。
  3. 将上述两个式子相等,得到2N2=2N0-1+N2*2,即N0=N2+1。
  4. 综上所述,对于任意一棵二叉树,其叶节点数为N0,而度数为2的节点总数为N2,则N0=N2+1。

什么是完全二叉树

完全二叉树是一种特殊的二叉树,除了最后一层外,每一层的节点数都达到最大值,最后一层的节点都靠左排列。 完全二叉树的特性

  1. 深度为k的完全二叉树,其节点数最多为2^(k+1)-1,最少为2^k。
  2. 对于深度为k的完全二叉树,其第k层的节点数为2^(k-1)个,其余各层节点数均为最大值,即2^(k-1)个。
  3. 若设深度为k的完全二叉树的节点数为n,则其任意节点:
    1. 若为非叶节点,则其左右子节点编号分别为2i和2i+1;
    2. 若为叶节点,则其编号为n-(2^k-1)至n之间,其中i为该叶节点在该层中的序号(序号从左往右,从1开始)。