完全二叉树的定义
满二叉树定义:
国内教程定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。
也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树
按照教材中的定义举例:
完全二叉树定义:
如果一棵深度为k,有n个结点的二叉树中各结点能够与深度为k的顺序编号的满二叉树从1到n标号的结点一一对应的二叉树称为 完全二叉树;
一一对应,但不一定是完全一样多的个数,个人是这么理解的。
详解:
举例说明,深度假设为3.
满二叉树是这样的.
(见图1)
这6个节点,按先横后竖的方法把这个二叉树的节点写成一排,应当写成abcdef
而完全二叉树,意思就是,假如有5个节点,写出来必须排列成abcde,假如有4个节点,写出来必须排列成abcd,就是说完全二叉树必须构造成下面这个样子
(见图2,图3)
这样的才叫完全二叉树,假如是这样的
(见图4,图5)
这就不叫完全二叉树,因为d和e的位置相对于满二叉树发生了变化,
要构造完全二叉数,每一个编号的节点都必须跟满二叉树一一对应,不能变化.
这样说你明白了吗?