美文网首页
二叉树(Binary Tree)类型特点

二叉树(Binary Tree)类型特点

作者: AnyunBo | 来源:发表于2021-12-31 18:02 被阅读0次

在上一篇《树(Tree)的基本概念》 中我们了解了树中常用的一些概念名词。这一篇呢注重说一下二叉树的特点和一些概念。

二叉树的类型

附图1

binary_tree.jpg

真二叉树

真二叉树的每个节点的度要么是0,要么是2 。

「附图1」 为例:图中第一行的:空树、只有一个节点的树、最右侧的二叉树;第三行的二叉树都是真二叉树

满二叉树

满二叉树的每个节点的度要么是0,要么是2 ,并且所有的叶子节点都在最后一层。

「附图1」 为例:图中 第三行的二叉树即是真二叉树 ,又是满二叉树

完全二叉树

所有的叶子节点都在最后两层,并且叶子节点都靠左对齐。(如下:「附图A」

附图A

tree_four.jpg

二叉树的特点

  • 每个节点的只有三中情况:0、1、2
  • 每个节点的最大为2(即最多有2颗子树)
  • 每个节点的左子树和右子树是有顺序的
  • 即使某一个节点只有一棵树,也要区分左子树和右子树的
  • 二叉树是有序树
  • 同样高度的二叉树中满二叉树的总节点数量是最多的,叶子节点数量是最多的
  • 满二叉树一定是真二叉树 ,真二叉树不一定是满二叉树
  • 完全二叉树从根节点到倒数第二层是一颗满二叉树
  • 满二叉树一定是完全二叉树 ,完全二叉树不一定是满二叉树

附图2

tree_two.jpg
非空二叉树的第n层(n ≥ 1),最多有\color{red}{2^n}\color{red}{^-}\color{red}{^1} 个节点

「附图2」 中右侧的 满二叉树为例, 推导非空二叉树的第n层最多有多少个节点:
规律为:
第一层( n = 1 ):\color{red}{2^1}\color{red}{^-}\color{red}{^1} = 1 个节点 ;
第二层( n = 2 ):\color{red}{2^2}\color{red}{^-}\color{red}{^1} = 2 个节点 ;
第三层( n = 3 ):\color{red}{2^3}\color{red}{^-}\color{red}{^1} = 4 个节点 ;
第四层( n = 4 ):\color{red}{2^4}\color{red}{^-}\color{red}{^1} = 8 个节点 ;
…………

高度为h的非空二叉树,最多有\color{red}{2^h}\color{red}{-}\color{red}{1} 个节点(h ≥ 1)

推导: 当 h= 4, 即非空二叉树有4层,这时的二叉树就是 「附图2」 中右侧的 满二叉树;
这时二叉树的总节点数为:
第一层1个 + 第二层2个 + 第三层4个 + 第四层8个 = 15个;
即:1+ 2 + 4 + 8 = \color{red}{2^0} + \color{red}{2^1} + \color{red}{2^2}+ \color{red}{2^3} = \color{red}{2^4}\color{red}{-}\color{red}{1} = 15

附图3

tree_three.jpg
对于任何一个非空二叉树,如果叶子节点数量为\color{red}{N_0} , 度为 2 的节点数量为 \color{red}{N_2} ,则有:\color{red}{N_0} = \color{red}{N_2} + \color{red}{1}
假设度为1 的节点数量为\color{red}{N_1} ,二叉树的节点总数为:\color{red}{N} = \color{red}{N_0} + \color{red}{N_1} + \color{red}{N_2}
二叉树的边数 T = (度为1 的节点数量 \color{red}{N_1}+ 度为 2 的节点数量\color{red}{N_2}的 2 倍) = (二叉树的节点总数\color{red}{N} - 1) = (叶子节点数量\color{red}{N_0} + 度为1 的节点数量 \color{red}{N_1} +度为2的节点数量 \color{red}{N_2})即:T = ( \color{red}{N_1} + \color{red}{N_2} * 2 ) = ( \color{red}{N} - 1) = ( \color{red}{N_0} + \color{red}{N_1} + \color{red}{N_2}

「附图3」 中的二叉树为例推导:
A二叉树:度为1的节点数量\color{red}{N_1}= 0, 度为2的节点数量\color{red}{N_2}= 0,叶子节点数量\color{red}{N_0} = 1 = 0 + 1 ;二叉树的节点总数为 1 = 1 + 0 + 0
B二叉树:度为1的节点数量\color{red}{N_1}= 0,度为2的节点数量\color{red}{N_2}= 1,叶子节点数量\color{red}{N_0} = 2 = 1 + 1 ;二叉树的节点总数为 3 = 2 + 0 + 1
C二叉树:度为1的节点数量\color{red}{N_1}= 0,度为2的节点数量\color{red}{N_2}= 3 ,叶子节点数量\color{red}{N_0} = 4 = 3 + 1 ;二叉树的节点总数为 7 = 4 + 0 + 3
D二叉树:度为1的节点数量\color{red}{N_1}= 2,度为2的节点数量\color{red}{N_2}= 5 ,叶子节点数量\color{red}{N_0} = 6 = 7 + 1;二叉树的节点总数为 13 = 6 + 2 + 5
E二叉树:度为1的节点数量\color{red}{N_1}= 0,度为2的节点数量\color{red}{N_2}= 7 ,叶子节点数量\color{red}{N_0} = 8 = 7 + 1 ;二叉树的节点总数为 15 = 8 + 0 + 7
……

假设一个满二叉树的高度为h (h ≥1 ) , 那么第n层的节点数量为\color{red}{2^n}\color{red}{^-}\color{red}{^1} ; 叶子节点数量为 \color{red}{2^h}\color{red}{^-}\color{red}{^1} ;总节点数量为 n = \color{red}{2^h}\color{red}{-}\color{red}{1} = \color{red}{2^0} + \color{red}{2^1} + \color{red}{2^2} + ..... + \color{red}{2^h}\color{red}{^-}\color{red}{^1} ;高度 h = \color{red}\log_\color{red}{2}\color{red}{(n+1)}

相关文章

网友评论

      本文标题:二叉树(Binary Tree)类型特点

      本文链接:https://www.haomeiwen.com/subject/fcbgqrtx.html