树 -- AVL树】的更多相关文章

1.AVL树 带有平衡条件的二叉查找树,所以它必须满足条件: 1 是一棵二叉查找树 2 满足平衡条件 1.1 平衡条件: 1)严格的平衡条件:每个节点都必须有相同高度的左子树和右子树(过于严格而不被使用). 2)AVL树的平衡条件:每个节点的左子树和右子树的高度最多差1的二叉查找树(空树的高度定义为-1) 1.2 特点: 严格的高度平衡,使得AVL树在查找时耗费时间更少.它理论上的时间复杂度为O(logN). 虽然二叉查找树的平均时间也为O(logN),但是二叉查找树并不平衡,它的最坏情况是所有…
对于一棵普通的二叉查找树而言,在进行多次的插入或删除后,容易让树失去平衡,导致树的深度不是O(logN),而接近O(N),这样将大大减少对树的查找效率.一种解决办法就是要有一个称为平衡的附加的结构条件:任何节点的深度均不得过深.有一种最古老的平衡查找树,即AVL树. AVL树是带有平衡条件的二叉查找树.平衡条件是每个节点的左子树和右子树的高度最多差1的二叉查找树(空树的高度定义为-1).相比于普通的二叉树,AVL树的节点需要增加一个变量保存节点高度.AVL树的节点声明如下: typedef st…
前言 通过之前对二叉查找树的讨论,我们知道在给定节点数目的情况下,二叉树的高度越低,查找所用时间也就越短. 在讨论红黑树的时候,我们说过红黑树并非完全"平衡"的二叉树,只是近似"平衡".那么这个平衡到底指的是什么呢?有没有完全"平衡"的二叉树? 平衡二叉树 什么样的二叉树能被形容为平衡二叉树呢? 1)空树 2)根的左右子树的高度之差的绝对值不超过1,并且左右子树也都是一棵平衡二叉树. 这样的树就被我们认作时平衡二叉树. 显然,当一颗二叉搜索树能够…
RB Tree 红黑树  :http://blog.csdn.net/very_2/article/details/5722682 Nginx的RBTree实现   :http://blog.csdn.net/liuxuejiang158blog/article/details/21417145 AVL Tree    :http://blog.csdn.net/collonn/article/details/20128205 B[+/-] Tree  :http://hxraid.iteye.…
详情查看:http://www.cnblogs.com/skywang12345/p/3577360.html…
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 二叉搜索树的深度与搜索效率 我们在树, 二叉树, 二叉搜索树中提到,一个有n个节点的二叉树,它的最小深度为log(n),最大深度为n.比如下面两个二叉树: 深度为n的二叉树 深度为log(n)的二叉树 这两个二叉树同时也是二叉搜索树(参考树, 二叉树, 二叉搜索树).注意,log以2为基底.log(n)是指深度的量级.根据我们对深度的定义,精确的最小深度为floor(log(n)…
AVL树 AVL树又称为高度平衡的二叉搜索树,是1962年有俄罗斯的数学家G.M.Adel'son-Vel'skii和E.M.Landis提出来的.它能保持二叉树的高度 平衡,尽量降低二叉树的高度,减少树的平均搜索长度AVL树的性质 1. 左子树和右子树的高度之差的绝对值不超过1 2. 树中的每个左子树和右子树都是AVL树 3. 每个节点都有一个平衡因子(balance factor--bf),任一节点的平衡因子是-1,0,1.(每个节点的平衡因子等于右子树的高度减去左子 树的高度 ) AVL树…
一.问题描述 实现3种树中的两种:红黑树,AVL树,Treap树 二.算法原理 (1)红黑树 红黑树是一种二叉查找树,但在每个结点上增加一个存储位表示结点的颜色,可以是red或black.红黑树满足以下五个性质: 1) 每个结点或是红色或是黑色 2) 根结点是黑色 3) 每个叶结点是黑的 4)如果一个结点是红的,则它的两个儿子均是黑色 5) 每个结点到其子孙结点的所有路径上包含相同数目的黑色结点 本实验主要实现红黑树的初始化,插入和删除操作.当对红黑树进行插入和 删除操作时,可能会破坏红黑树的五…
为了接下来能更好的学习TreeMap和TreeSet,讲解一下二叉树,AVL树和红黑树. 1. 二叉查找树 2. AVL树 2.1. 树旋转 2.1.1. 左旋和右旋 2.1.2. 左左,右右,左右,右左 2.2. 删除 3. 红黑树 3.1. 插入 3.2. 删除 4. 参考文章 1. 二叉查找树 在讲AVL树和红黑树之前,作为铺垫必须先说下二叉树. 二叉树本身不必再说,一棵二叉树称为二叉查找树的条件如下: 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值. 若任意节点的右子…
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 二叉搜索树的深度与搜索效率 我们在树, 二叉树, 二叉搜索树中提到,一个有n个节点的二叉树,它的最小深度为log(n),最大深度为n.比如下面两个二叉树: 深度为n的二叉树 深度为log(n)的二叉树 这两个二叉树同时也是二叉搜索树(参考树, 二叉树, 二叉搜索树).注意,log以2为基底.log(n)是指深度的量级.根据我们对深度的定义,精确的最小深度为floor(log(n)…