5.3二叉树的定义

二叉树的定义

对于在某种阶段都是两种结果的情形,比如开和关、0和1、真和假等,都适合用二叉树结构来建模。

例如,查找16内的某个数,可以用二分查找法,一定能在4次查找内查出结果。

5.3二叉树的定义_第1张图片
二叉树是n个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根节点和两棵互不相交的、分别成为根节点的左子树和右子树的二叉树组成。

如:下左图就是一个二叉树,下右图由于结点b有三个子树,所以它不是二叉树。

5.3二叉树的定义_第2张图片

1.二叉树的特点

二叉树的特点有:

  • 每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点。
  • 左子树和右子树是有顺序的次序不能颠倒。就像你左鞋、右鞋不能换着穿,你也套不上啊。
  • 即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。

2.特殊二叉树

①斜树

所有结点都只有左子树的二叉树叫左斜树。所有节点都只有右子树的二叉树叫右斜树。这两者统称斜树。
5.3二叉树的定义_第3张图片

②满二叉树

在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树叫满二叉树。
5.3二叉树的定义_第4张图片
满二叉树的特点有:

  • 叶子结点只能在最下一层
  • 叶子节点的度一定是2
  • 同样深度的二叉树中,满二叉树的结点个数最多,叶子数最多。

③完全二叉树

对一棵具有n个结点的二叉树按层序编号,如果编号为i(1≤i≤n)的结点与同样深度的满二叉树编号为i的结点在二叉树中位置完全相同,则这棵树称为完全二叉树。

完全二叉树具有如下特点:

  • 叶子结点只能出现在最下两层
  • 最下层的叶子一定集中在左部连续位置。
  • 倒数第二层,若有叶子结点,一定都在右部连续位置。
  • 如果结点度为1,则该节点只有左孩子,即不存在只有右子树的情况。
  • 同样结点树的二叉树,完全二叉树深度最小
    5.3二叉树的定义_第5张图片
    5.3二叉树的定义_第6张图片
    5.3二叉树的定义_第7张图片
    5.3二叉树的定义_第8张图片
    其实有种很简单的方法判断是不是完全二叉树,就是按着满二叉树的顺序对应这个二叉树的序号对不对。

你可能感兴趣的:(数据结构,算法,数据结构)