一、树的定义
树:n(>=0)个节点的有限集,当n=0时为空树(没有根节点)
非空树特点:
1.只有一个根节点
2.当节点数n>1时,其他的节点可分为m(>0)个没有交集的集合,每一个单独的集合都是一个树(子树)。
下图是一个简单的树形结构
其中根节点是A,B、E是A的子节点,同时以B、E为父节点的是子树
二、树的形容
1.节点的度数:一个节点拥有子树的大小称为节点的度(如图上A节点的度是2,拥有2个子树)
2.树的度:树的度是取节点中节点最大的度为树的度(上图节点最大是2,所以树的度是2)
3.叶节点:度为0的节点称为叶节点(上图C、D、F、G为叶节点)
4.支节点:度数不为0的节点称为支节点或终端节点(如上图B、E为支节点)
5.内部节点:除根节点外的分支节点称为内部节点(如上图B、E节点)
6.父节点、子节点、兄弟节点关系:一个节点的子树称为该节点的子节点,该节点称为它们的父节点,同一节点的各个子节点之间称为兄弟节点。一棵树的根节点没有父节点,叶节点没有子节点。
(如上图:B是C、D的父节点,C、D是兄弟节点,B是A的子节点,A是B的父节点,同时A也是根节点)
7.树的高度(深度):树中节点最大值称为改树的高度(深度),(上图树的高度是3)。
8.有序树:树中每个节点的各个子树的排列为从左到右,不能交换,即兄弟之间是有序的,则该树称为有序树,下图就是一棵有序树
9.森林:互不相交的树称为森林,如上图去掉根节点A,就变为森林,加上根节点A就变为树。
三、二叉树
1.二叉树:n(>=0)个节点的有限集,当n=0时为空树(没有根节点)
2.非空二叉树:由一个根节点和俩棵互不相交的树组成,左边的子节树称为:左子树 右边的子树称为右子树,左子树与右子树存在顺序,左>右。
四、二叉树类别
1.满二叉树(上图都是满二叉树):
<1>所有节点都存在左子树与右子树,且叶节点都在同一层
<2>每一层上的节点数都是最大的
<3>节点数=2的k次方-1,(K为层数)。
2.完全二叉树:所有叶节点都在同一层,每一层节点数不要求最大,如下图,都是完全二叉树
完全二叉树特点:
1>叶节点只能出现在层次最大的或层次最大为2层上。
2>完全二叉树节点数n满足,2(k-1)次方-1<n<=2(k-1)次方-1;
3>满二叉树一定是完全二叉树。