数据结构基础篇(5)--二叉树

来源:互联网 发布:php微社区源码 编辑:程序博客网 时间:2024/05/20 20:03

一、二叉树的定义

二叉树是n个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。如下如所示
二叉树

二、二叉树的特点

(1)每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点。
(2)左子树和右子树室友顺序的,不能互换。
(3)二叉树的五种基本形态:
1、空二叉树
2、只有一个根结点
3、根结点只有左子树
4、根结点只有右子树
5、根结点既有左子树又有右子树

三、特殊二叉树

(1)斜树
所有的结点都只有左子树的二叉树叫做左斜树;
所有的结点都只有右子树的二叉树叫做右斜树。
斜树的特点就是每一层只有一个结点,结点的个数与二叉树的深度相同,其实线性表可以理解为树的一种极其特殊的表现形式。
(2)满二叉树
在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树。
满二叉树
单是每个结点都存在左右子树,不能算是满二叉树,还必须要所有的叶子都在同一层上,这就做到了整棵树的平衡,基本特点如下:
a、叶子只能出现在最下一层,出现在其它层就不可能达成平衡。
b、非叶子结点的度一定是2,否则就不是平衡的。
c、在同样深度的二叉树中,满二叉树的结点个数最多,叶子点树最多。
(3)完全二叉树
对一棵具有n个结点的二叉树按层序遍历,如果编号为i(i<=1<=n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树。
完全二叉树
满二叉树一定是棵完全二叉树,但完全二叉树不一定是满的。基本特点如下:
a、叶子结点只能出现在最下两层。
b、最下层的叶子一定集中在左部连续位置。
c、倒数第二层,若有叶子结点,一定都在右部连续位置。
d、如果结点的度为1,则该结点只有左孩子,即不存在只有右子树的情况。
e、同样结点树的二叉树,完全二叉树的深度最小。

文章只是作为自己的学习笔记,借鉴了网上的许多案例,如果觉得阔以的话,希望多交流,在此谢过…

0 0
原创粉丝点击