树与二叉树
树
树(tree)是n(n≥0)个结点的有限集,它或为空树(n=0);或为非空树,对于非空树T:
- 有且仅有一个称之为根的结点;
- 除根结点以外的其余结点可分为m(m>0)个互不相交的有限集T1,T2,T3,...,Tm,其中每一个结合本身又是一棵树,并且成为根的子树(SubTree)。
图上为有6个结点的树,其中A是根,其余结点分成2个互不相交的子集:T1={B,D,E},T2={C,F}。
T1和T2都是根A的子树,且本身也是一棵树。例如T1,其根为B,其余结点分为两个互不相交的子集。
树的基本术语
1.结点的度:一个结点含有的子树的个数称为该结点的度;
2.叶结点或终端结点:度为0的结点称为叶结点;
3.非终端结点或分支结点:度不为0的结点;
4.双亲结点或父结点:若一个结点含有子结点,则这个结点称为其子节点的父结点;
5.孩子结点或子结点:一个结点含有的子树的根结点称为该节点的子结点;
6.兄弟结点:具有相同父结点的结点互称为兄弟结点;
7.树的度:一棵树中,最大的结点的度称为树的度;
8.结点的层次:从根开始定义起,根为第1层,根的子结点为第2层,以此类推;
9.树的高度或深度:树中结点的最大层次;
10.堂兄弟结点:双亲在同一层的结点互为堂兄弟;
11.结点的祖先:从根到该结点所经分支上的所有结点;
12.子孙:以某结点为根的子树中任一结点都称为该结点的子孙。
13.森林:由m(m>=0)棵互不相交的树的集合称为森林;
二叉树
定义:
二叉树(Binary Tree)是n(n≥0)个结点所构成的集合,它或为空树(n=0);或为非空树,对于非空树T:
- 有且仅有一个称之为根的结点;
- 除根节点以外的其余结点分为两个互不相交的子集T1和T2,分别称为T的左子树和右子树,且T1和T2本身又都是二叉树。
二叉树与树一样具有递归性质,二叉树与树的区别主要有以下两点:
- 二叉树每个结点至多只有两颗子树(即二叉树中不存在度大于2的结点);
- 二叉树的子树有左右之分,其次序不能任意颠倒。
二叉树的地柜定义表明二叉树或为空,或是由一个根结点加上两颗分别称为左子树和右子树的、互不相交的二叉树组成。由于这两颗子树也是二叉树,则由二叉树的定义,它们也可以是空树。so,二叉树可以有五种基本形态。(本人手绘,不喜勿喷。)