树:
1、概念:树是n个结点的有限集(n>=0),n=0时是空树。
特点:在非空树中,:
1)仅有一个根结点;
2)根的子树,互不相交。
2、一些名词概念
结点的度(Degree):拥有的子树数目。
叶结点(Leaf):度为0的结点,又叫终端结点。
分支结点:度不为0的结点,又叫非终端结点。
内部结点:除掉根结点之外的分支结点。
树的度:树内各结点的度的最大值。
树的深度(Depth高度):树中结点的最大层次。
有序树:将树中的结点的各子树看成是从左到右是有次序的,不能互换。
森林:m(m>=0)棵互不相交的树的集合,树中的每个结点而言,其子树的集合即为森林。在一定的情况下,线性表可以看成特殊的树。
3、结点间的关系
孩子:一个结点的直接后继;该结点为孩子结点的双亲。
子孙:一个结点的孩子的孩子,该结点是子孙的祖先。
兄弟:同一个双亲的孩子之间互称兄弟。
堂兄弟:双亲在同一层的结点互为堂兄弟。
4、树的存储结构表示方法:
双亲表示法、孩子表示法、孩子兄弟表示法。
二叉树:
是n(n>=0)个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根结点和两棵互不相交的,分别称为根结点的左子树和右子树的二叉树组成。
1、特点:
1)每个结点最多有两棵子树,二叉树的度<=2;
2)左子树和右子树是有序的,次序不能颠倒;
3)积式树中结点只有一个子树,也要区分是左子树还是右子树。
2、二叉树五种基本形态:
1)空二叉树;
2)只有根结点;
3)根结点只有左子树;
4)根结点只有右子树;
5)根结点既有左子树又有右子树。
一、斜树。
二、满二叉树:
在一棵二叉树中,如果分支结点都存在左子树和右子树,并且,所有叶子都在同一层上。
1、特点:
1)叶子只能出现在最小一层上;
2)非叶子结点的度一定是2;
3)在同样深度的二叉树中,满二叉树的结点个数最多,叶子数最多。
三、完全二叉树:
对一棵具有n个结点的二叉树按层次编号,如果编号为i的结点与同样深度的满二叉树中编号 为i的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树。
1、特点:
1)叶子结点只能出现在最小两层;
2)最下层的叶子一定集中在左部连续位置;
3)倒数二层,若有叶子结点,一定都在右部连续位置;
4) 如果结点度为1, 则该结点只有左孩子,即不存在只有右子树的情况;
5)同样结点树的二叉树,完全二叉树的深度最小。
2、性质:
1)二叉树第i层最多有2^(i - 1)个结点;
2)深度为k的二叉树最多有2^k - 1个结点;
3)对任何一棵二叉树,如果叶结点有n0个,度为2的叶结点有n2个,则n0=n2+1;
4)具有n个结点的完全二叉树的高度为[log2N] + 1,
前序遍历: 根->左->右
中序遍历: 左->中->右
后序遍历: 左->右->中