数据结构与算法——平衡二叉树
1 引言 2 二叉搜索树 2.1 定义 2.2 性质 2.3 节点结构 2.4 创建二叉搜索树 2.5 查找 2.6 插入 2.7 删除 3 平衡二叉树 3.1 定义 3.2 平衡因子 3.3 节点结构 3.4 左旋与右旋 3.5 插入 1 引言 二叉树是数据结构中的重点与难点,也是应用较为广泛的一类数据结构。二叉树的基础知识在之前的数据结构与算法——二叉树基础中已经详细介绍。本篇文章将着重介绍两类二叉树,二叉搜索树和平衡二叉树。 2 二叉搜索树 2.1 定义 二叉搜索树又称二叉查找树,亦称为二叉排序树。设x为二叉查找树中的一个节点,x节点包含关键字key,节点x的key值记为key[x]。如果y是x的左子树中的一个节点,则key[y] <= key[x];如果y是x的右子树的一个节点,则key[y] >= key[x]。 2.2 性质 (1)若左子树不空,则左子树上所有节点的值均小于它的根节点的值; (2)若右子树不空,则右子树上所有节点的值均大于它的根节点的值; (3)左、右子树也分别为二叉搜索树; 例如:图2.2.1所示的二叉树为一棵二叉搜索树。 图2.2.1 例如:图2.2.2所示不是一棵二叉搜索树,因为节点40的左孩子节点值为44,不满足二叉搜索树的定义。 图2.2.2 2.3 节点结构 二叉树的节点结构通常包含三部分,其中有:左孩子的指针