[数据结构第六章平衡树.docVIP

  • 1
  • 0
  • 约8.58千字
  • 约 9页
  • 2017-01-08 发布于北京
  • 举报
[数据结构第六章平衡树

6.5平衡二叉树 平衡二叉树(balanced binary tree)是对二叉搜索树的一种改进。二叉搜索树有一个缺点,那就是树的结构事先无法预料,随意性很大,它只与结点的值和插入次序有关,往往得到的是一棵很不“平衡”的二叉树。二叉搜索树与理想平衡树相差越远,树的高度就越高,其运算时间就越长,在最坏的情况下,就是对单链表进行运算的时间,其时间复杂度由O(n)变为O(n),从而部分或全部地丧失了利用二叉搜索树组织数据的优点。为了克服二叉搜索树的这个缺点,需要在插入和删除结点时对树的结构进行必要的调整,使二叉搜索树始终处于一种平衡的状态,即始终成为一种平衡二叉树(balanced binary tree),简称平衡树。当然它不是理想平衡树,因为那将使调整操作更为复杂,使调整带来的好处得不偿失。 本节将首先讨论平衡树的定义和调整操作,然后讨论B_树的定义以及查找、插入和删除等运算。 6.5.1平衡二叉树的定义 平衡二叉树简称平衡树是由阿德尔森一维尔斯基和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。平衡树的定义是:若一棵二叉树中每个结点的左、右子树的高度至多相差1,则称此树为平衡树。我们把二叉树中每个结点的左子树高度减去右子树的高度定义为该结点的平衡因子(balance factor),因此,平衡树中每个结点的平衡因子只能是1,

文档评论(0)

1亿VIP精品文档

相关文档