二叉树的一些概念理解
一、二叉树的子树
二叉树中以任何一个节点为头部的整棵树称作为二叉树的子树,如下图,注意:单独的4、5、6、7也是子树
二、平衡二叉树(AVL树)
1.空树是平衡二叉树
2.如果一棵树不为空,并且其中所有的子树都满足各自的左子树与右子树的高度差都不超过1
而下面这个就不是平衡二叉树,因为②节点的左子树高度与右子树的高度差为2,大于1了
三、搜索二叉树(二叉查找树或者二叉排序树)
每棵子树头结点的值都比各自左子树上所有的节点值大、也都比各自右子树上所有的节点值小,所以,搜索二叉树与按照中序遍历得到的序列(左中右)一定是从小到大排列的。
平时听到的红黑树和平衡搜索二叉树等,都是二叉树的不同实现。主要是为了让搜索二叉树的搜索效率提高并且让搜索二叉树的调整代价尽量小
四、满二叉树
满二叉树是除了最后一层的节点没有任何子节点外,剩下的每一层上的节点都有两个子节点
五、完全二叉树
完全二叉树是指除了最后一层外,其他每一层的节点都是满的,最后一层如果也满了,是一颗,满二叉树,也是完全二叉树。最后一层如果不满,缺少的节点也全部集中在左边,那也是一颗完全二叉树,也就是说最后一层可以全,但是必须全部靠左对齐
注意,下面的图不是一颗完全二叉树
五、后继节点与前驱节点
一个节点的后继节点是指这个节点在中序遍历序列中的下一个节点
前驱节点是指中序遍历序列中的上一个节点