伸展树(一)之 图文解析 和 C语言的实现 概要 本章介绍伸展树。它和"二叉查找树"和"AVL树"一样,都是特殊的二叉树。在了解了"二叉查找树"和"AVL树"之后,学习伸展树是一件相当容易的事情。和以往一样,本文会先对伸展树的理论知识进行简单介绍,然后给出C语言的实现。后序再分别给出C++和Java ...
分类:
其他好文 时间:
2018-02-24 15:05:31
阅读次数:
254
四种旋转方式和插入节点: http://www.cnblogs.com/skywang12345/p/3577360.html 删除节点的解答这边比较详细:http://blog.csdn.net/freeelinux/article/details/52204851 ...
分类:
其他好文 时间:
2018-02-14 16:42:05
阅读次数:
147
一、平衡二叉树的定义 平衡二叉树(AVL 树)仍然是一棵二叉查找树,只是在其基础上增加了“平衡”的要求。所谓平衡是指,对 AVL 树的任意结点来说,其左子树与右子树的高度之差的绝对值不超过 1,其中左子树与右子树的高度之差称为该结点的平衡因子。 由于需要对每个结点都得到平衡因子,因此需要在树的结构中 ...
分类:
其他好文 时间:
2018-02-06 16:35:39
阅读次数:
191
1.关于红黑树,先上一张图,这里提供一个可视化数据结构的网站:可视化带动画的数据结构基本的在线操作,我在这上面生成了一张: 网上有很多教程,写的也非常棒,这里简单的总结一下其基本性质: 2.为啥有了平衡二叉树还要有红黑树根据二者的结构图很容易看出红黑树的查找速度明显不如AVL树,为啥还会有红黑树的出 ...
分类:
其他好文 时间:
2018-01-30 19:30:31
阅读次数:
149
一颗子树的根结点的平衡因子就代表该子树的平衡性。 保持所有子树几乎都处于平衡状态,AVL树在总体上就能够基本保持平衡。 ...
分类:
其他好文 时间:
2018-01-30 12:39:43
阅读次数:
276
AVL树得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis,是一种高度平衡的自平衡二叉查找树 它的查找、插入和删除在平均和最坏情况下都是O(log n),这得益于它的性质: 在满足二叉查找树的性质情况下,还满足每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1 ...
分类:
其他好文 时间:
2018-01-30 12:19:52
阅读次数:
172
1.介绍 AVL树是带有平衡条件的二叉查找树,而且必须保证树的深度是O(logN). 这个平衡条件很多,最常见的是左子树和右子树的高度相差不超过1,可以证明,一颗AVL树的高度最多为1.44log(N+2)-1.328。 因此,除了插入的操作以外,所有的树操作都以O(logN)执行,因为当进行插入的 ...
分类:
其他好文 时间:
2018-01-28 16:34:30
阅读次数:
154
AVL树插入数据的四种结构: 第一种: 第二种: 第三种: 第四种: ...
分类:
其他好文 时间:
2018-01-15 20:23:30
阅读次数:
130
一、AVL树性质1.本身首先是一棵二叉搜索树。2.带有平衡条件:每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1。也就是说,AVL树,本质上是带了平衡功能的二叉查找树(二叉排序树,二叉搜索树)。AVL树的查找、插入和删除在平均和最坏情况下都是O(logn)。如果在AVL树中插入或删除节点后,使得高度之差大于1。此时,AVL树的平衡状态就被破坏,它就不再是一棵二叉树;为了让它重新维持在一个平
分类:
其他好文 时间:
2018-01-09 10:22:31
阅读次数:
184