树的基本概念
树是n个(n≥0)结点的有限级(n=0时,为空树)。任意一个非空树都要满足:①有且仅有一个特定的结点被称为根;②当n>1时,其余结点可以分为m(m>0)个互不相交的有限集T1,T2,……Tm,其中每个集合本身又是一棵树,并且称为跟的子树。树的定义是一个递归的数据结构,即在树的定义中用到了其自身。
树是逻辑结构,但也是一种分层结构,又有如下特点:①树的根节点没有前驱,除了根节点以外所有的节点,有且仅有一个前驱。②树中所有的节点可以有零个或多个后继结点。
二叉树的基本概念
一、二叉树的定义
二叉树的特点是每个节点最多只有两个子树,并且还有左右之分。二叉树也以递归的形式定义,它是n个结点的有限集合,其中n大于等于0。二叉树要么是空树也就是n=0,要么就是由一个根结点和两个互不相交的被称为根的左子树和右子树组成;其中,左右子树又分别是一棵二叉树。
二叉树是有序树,如果将它的左右子树对调,那么又将是一课新的不同的二叉树。
这里我们区分一下二叉树和度为2的树:
①度为2的树至少有三个节点,但是二叉树可以为空;
②度为2的有序树的孩子的左右次序是相对于另一个孩子而言的;但是二叉树无论他的孩子数是否为2,都要确定他的左右次序。
二、特殊的二叉树
接下来我们介绍一下几种比较特殊的二叉树。
1、满二叉树
一棵高度为h、并且含有2的h次方-1个结点的二叉树,即树中每一层都含有最多的结点,它的叶子节点都在二叉树的最下一层,并且除了叶子结点以外的每个结点度数都是2.
2、完全二叉树
高度为h、有n个结点的二叉树,当且仅当其每个结点,都与高度为h的满二叉树中编号为1~n的结点一一对应,我们将它称为完全二叉树。
注意:我们针对满二叉树和完全二叉树可以说,满二叉树就是完全二叉树,但是完全二叉树不一定是满二叉树;同时,完全二叉树就是将满二叉树最下面一层的右边结点删去的二叉树。
3、二叉排序树
左子树上的所有