一、概念
平衡二叉树或者是棵空树,或者是具体下列性质的二叉查找树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的高度只差的绝对值不超过1。若将二叉树结点的平衡因子定义为该节点的左子树的高度减去它的右子树的高度,则所有结点的平衡因子只可能为-1,0,1。只要有一个结点的平衡因子的绝对值大于1,那么这棵树就失去了平衡。
简单例子
- 下图为平衡二叉树
- 下图为非平衡二叉树
平衡二叉树存储结构的类型定义如下:
typedef int KeyType; // 关键字类型为整数类型
typedef struct {
KeyType key; // 关键字项
} RecordType, RcdType; // 记录类型
typedef struct BBSTNode {
RcdType data;
int bf; // 结点平衡因子
struct B