树
树的概念
树是n(n>=0)个结点的有限集。
树的特点:
1、在任意一棵树中:
(1)有且只有一个根节点。
(2)除根节点外,其余结点可分为m(m>=0)个互不相交的有限集T1,T2,…,Tm,其中每一个集合本身又是一
棵树,称为根的子树。
元素与元素的关系是非线性的。
基本术语:
结点的度:就是当前结点子树的个数。例如a结点有2个子树(b、c),所以a结点的度为2。
树的度:就是在该树中所有结点的度中最大的度。当前树中度最大的结点是b结点(3,子树:d,e,f)。
叶子:没有子树的结点。
分枝结点:树中非叶子结点的所有结点称为分枝结点。
结点的层数:从上往下,a在第一层,b和c在第二层。
树的层数:所有结点的层数的最大值。当前树结点为4。
父结点是兄弟结点的结点称为堂兄弟关系。
当前结点以上的所有结点都是当前结点的祖先。
树的高度:树的最大层数。高度为4。也称树的深度。
路径:根结点到达某一结点的路径。
路径长度:路径上的分支数目。a->j的路径长度为3。
森林:
当m=0时,表现为一个空的森林。
二叉树:
定义:由一个根结点和两颗互不相交的分别称为这个跟的左子树和右子树的二叉树组成。它的子树也是二叉树。
二叉树的5种形态:
二叉树分左右子树区别,普通树没有左右子树之分。
二叉树中结点的度<=2。
满二叉树:
通俗理解: 除去最后一层外,其余所有层的结点的度都为2。叶子结点肯定是最后一层。
完全二叉树:
只有最后一层的结点的度和倒数第二层结点的度可能不为2。也就是叶子结点要么是最后一层,要么是倒数第二层。
如果在E结点下再来一个结点,那么就不是完全二叉树了,最外层必须从左向右挨个置放。
二叉树的性质:
一个二叉树的结点最多的时候也就是这个树成为满二叉树的时候。
终端结点也就是叶子结点。
对于任意一个结点的二叉树,叶子结点数=度为2的结点的总数+1。
性质3验证:
性质4:
图中的1:完全二叉树的结点数-最外层的结点数。因为只有最外层的结点数没有满,所以保守按前k-1层为满
二叉树来计算结点数。
图中的2:满二叉树的结点数。一个数的结点最多为处于满二叉树的状态时的结点