判断一棵树是否为完全二叉树
发布时间:2020-03-29 10:32:53
来源:51CTO
阅读:3571
作者:朔月云影
完全二叉树:若一棵二叉树具有具有n个节点,它的每个节点都与高度为k的满二叉树编号为0~n-1结点一一对应,则称这可二叉树为完全二叉树。
方法一:一维数组存储
根据完全二叉树的定义和性质,利用一位数组作为完全二叉树的存储,如下图
由图,节点的编号与数组元素的下标是一一对应的,可根据二叉树的性质,可方便找出下标
为i的的双亲结点a[i/2]及左右孩子结点a[i*2],a[i*2+1].这样判断一棵树是否为二叉树,应该对此二叉树从上到下,从左到右依次编号,
然后把编好的号依次存入一位数组中,在与相应深度的满二叉树的编号进行对比,即可判断此二叉树是否为完全二叉树。
但是该方法虽然实现容易,但占用空间太大,并且效率低,所以可通过层次遍历来判断是否为完全二叉树。