树、森林和二叉树---数据结构

概念:

树是n(n>=0)个结点的有限集合,一棵树满足以下两个条件:

(1)当n=0时,称为空树;

(2)当n>0时,有且仅有一个称为根的结点,除根节点外,其与节点分别为m(m>=0)个互不相交的非空集合T1,T2,…,Tm,这些集合中的每一个都是一棵树,称为根的子树。

 

单个结点是一棵树,树根就是该结点本身。

空集合也是树,称为空树。空树中没有结点。

 

举例:

树、森林和二叉树---数据结构_第1张图片

相关术语:

结点的度:树上任意结点所拥有的字数的数目称为该结点的度。

       详解:上图中结点A的度为3,结点B的度为2,结点D的度为2,结点G的度为3,结点的度为0

叶子:度为0的结点称为叶子或终端节点。

       详解:度为0的结点为C、E、F、H、I、J、K

树的度:一棵树中所有结点的度的最大值称为该树的度。

        详解:上面的树中所有结点的度的最大值为3,即该树的度

树的层次:从根开始算起,根的层次为1,其余结点的层次为其双亲的层次加1。

        详解:结点A的层次为1,结点B、C、D的层次为2,结点E、F、G、H的层次为三,结点I、J、K的层次为4

树的高度:一棵树中所有结点层次数的最大值称为该树的高度或深度。

        详解:由树的层次可知,上图中结点层次的最大值为4,即树的高度为4

有序树:若树中各结点的子树从左到有都是有次序的,不能互换,称为有序树。

无序树:若树中各结点的子树是无次序的,可以互换,则称为无序树。

 

森林

概念

森林是m(m>=0)课互不相交的树的集合。树的每个结点的子树是森林。删除一个非空树的根节点,它的子树便构成森林。

 

举例:

树、森林和二叉树---数据结构_第2张图片

小编有话说:森林就是m(m>=0)棵互不相交的树的集合

 

二叉树

概念:二叉树是n(n>=0)个元素的有限集合,该集合或者为空,或者由一个根节点及两棵互不相交的左子树或右子树组成,其中左子树或右子树也均为二叉树。

性质:

1.二叉树第i(i>=1)层上至多有2^(i-1)个结点。

2.深度为k(k>=1)的二叉树至多有2^k-1个结点.

3.对任何一棵二叉树,若度为0的结点(叶结点)个数为n0,度为2的结点个数为n2,则n0=n2+1.

 

小编有话说:在小编看来,有些性质是不需要我们记住的,如果遇到了,自己画一棵二叉树就很容易就能推算出来啦!

 

扩展:

满二叉树:深度为k(k>=1)且有2^k-1个结点的二叉树称为满二叉树。

满二叉树满足了性质二中的结点数的最大值

完全二叉树:如果对满二叉树按从上到下,从左到右的顺序编号,并在最下一层删除部分节点(删除最后一层仍有结点),如果删除的这些结点的编号是连续的而且删除的结点中含有最大编号的结点,那么这棵二叉树就是完全二叉树。

满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。

 

举例:

树、森林和二叉树---数据结构_第3张图片

小编有话说:满二叉树就是最下一层没有空结点的二叉树,完全二叉树就是在满二叉树的基础上,从最后一个结点按顺序删除结点,但要保证最后一层仍有结点。因此,满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。

 

总结:本篇博客纯属基本概念及性质,像这种东西是不需要死记硬背的,只要自己画一个图,就什么都明白了。在以后的博客中,小编会继续为大家分享树、森林和二叉树的遍历及转化,敬请期待。

你可能感兴趣的:(树、森林和二叉树---数据结构)