一、完美二叉树
一个深度为k(>=-1)且有2^(k+1) - 1个结点的二叉树称为完美二叉树。
二、满二叉树
如果一棵二叉树只有度为 0 的结点和度为 2的结点,则这棵二叉树为满二叉树。
三、完全二叉树
完全二叉树:叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。
完全二叉树通常采用数组储存,int[] arr = new int[n]
当n从0开始时:对于结点 i ,其左子节点为 2i+1 ,右子节点为 2i+2
当n从1开始时:对于结点 i ,其左子节点为 2i ,右子节点为 2i+1
三者对比
- 完美(Perfect)二叉树一定是完全(Complete)二叉树,但完全(Complete)二叉树不一定是完美(Perfect)二叉树。
- 完美(Perfect)二叉树一定是满(Full)二叉树,但满(Full)二叉树不一定是完美(Perfect)二叉树。
- 完全(Complete)二叉树可能是满(Full)二叉树,满(Full)二叉树也可能是完全(Complete)二叉树。
- 既是完全(Complete)二叉树又是满(Full)二叉树也不一定就是完美(Perfect)二叉树。