二叉树
树是不同于顺序表的一种新的数据结构。按照结点数量和树的结构可以将树分为很多种,本部分重点介绍二叉树的基本内容。
文章目录
树的定义
首先对树的一些基本概念有一个了解。
- 树是有 n ( n ⩾ 0 ) n(n\geqslant 0) n(n⩾0)个结点的有限集合。
- 如果 n = 0 n=0 n=0,称为空树。
- 如果 n > 0 n>0 n>0,称为非空树,对于非空树,有且仅有一个特定的被称为根(root)的结点(无直接前驱)
- 如果 n > 1 n>1 n>1,则除根以外的其他节点划分为 m ( m > 0 ) m(m>0) m(m>0)个互不相交的有限集 T 1 , T 2 , . . . , T m T_1,T_2,...,T_m T1,T2,...,Tm,其中每个集合本身又是一棵树,并且称为根的子树。(此为一个递归定义)
- 每个结点都有唯一的直接前驱,但是可能有多个后继。
上述即为树的基本定义和性质,接下来对于树中的一些关键词进行解释。
- 结点:包含一个数据元素以及若干指向其子树的分支。
- 结点的度:结点拥有的子树数
- 叶节点:度为0的结点(没有子树的结点)
- 分支结点:度不为0的结点(包括根节点)
- 孩子:结点的子树的根(直接后继,可能有多个)
- 双亲:孩子的直接前驱(最多只有一个)
- 兄弟:同一双亲的孩子
- 子孙:以某结点为根的树中的所有结点
- 祖先:从根到该节点所经分支上的所有结点
- 层次:根结点为第一层,其孩子为第二层,以此类推
- 深度:树中结点的最大层次
- 有序树:子树之间存在确定的次序关系
- 无序树:子树之间不存在确定的次序关系
- 森林:互不相交的树的集合(对于树中的每个结点而言,其子树的集合即为森林)
二叉树的定义
二叉树是众多类型树中的一种,后续也将会就二叉树的一些内容进行详细的讲解。
二叉树是一种特殊的树,该树种每个结点最多只有2棵子树,这样一来就可以将二叉树的2棵子树进行左右划分。那么对于一个二叉树来说,其可能的形式如下。
二叉树的性质
在了解了二叉树的定义之后,接下来对于二叉树的性质进行分析。
- 在二叉树的第 i i i层上至多有 2 i − 1 2^{i-1}