1,基本概念满二叉树完全二叉树:节点从上到下,从左到右排下来。平衡二叉树(AVL):左右子树都是平衡二叉树,且左右子树的深度只差的绝对值不超过1;节点的平衡因子:该节点的左子树的深度减去右子树的深度。平衡二叉树的所有节点的平衡因子只可能是0,1,-12,二叉树的性质在二叉树的第i(i>=1)层上至多...
分类:
其他好文 时间:
2014-10-29 16:18:21
阅读次数:
230
/*
1.插入:
使用了一个s数组来保存根节点到插入节点的路线
情况:
(1)空树,直接插入,return
(2)关键字相同,覆盖原来的值,return
(3)插入后,不失衡 那么就要拿出s数组的值来改变这条路线的平衡因子。
(4)插入后,失衡 调用AVL函数。
AVL旋转有分为4种
ll rr rl lr旋转(在设置平衡因子的时候,rl和lr旋转又有3种子情况)
2.查找...
分类:
其他好文 时间:
2014-10-28 13:56:53
阅读次数:
111
近期在学习数据结构上关于平衡二叉树的知识,看了严老师的思路,感觉用java写出递归的构建方式有点困难,由于当中的递归须要把引用传进去,所以感觉是要实现起来比較麻烦,所以就首先想到使用非递归的方式来实现构建平衡二叉树。 使用非递归的方式,思路也非常easy,就是为每个结点都要定义一个平衡因子的属性,....
分类:
编程语言 时间:
2014-10-15 13:56:30
阅读次数:
224
平衡二叉树又称AVL树。它或者是颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。若将二叉树节点的平衡因子BF定义为该节点的左子树的深度减去它的右子树的深度,则平衡二叉树上全部节点的平衡因子仅仅可能为-1,0,1.仅仅要二叉树上有一个节...
分类:
其他好文 时间:
2014-10-05 17:55:38
阅读次数:
165
1、AVL树的定义
平衡二叉查找树,又称作AVL树(以提出此树的两人人名命名的),AVL树是一种高度平衡的二叉查找树,它或者是一颗空树,或者是具有下列性质的二叉查找树:
(1)它的左子树和右子树都是平衡二叉查找树
(2)它的左子树和右子树的深度差的绝对值不超过1
将二叉树上的节点的左子树的深度减去右子树的深度的值定义为节点的平衡因子,因此平衡因子的值只可能是:-1、0 和 1。...
分类:
其他好文 时间:
2014-09-13 21:31:15
阅读次数:
269
平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。
平衡因子(bf):结点的左子树的深度减去右子树的深度,那么显然-1
很显然,平衡二叉树是在二叉排序树(BST)上引入的,就是为了解决二叉排序树的不平衡性导致时间复杂度大大下降,那么AVL就保持住了(BST)的最好时间复杂度O(logn...
分类:
其他好文 时间:
2014-09-06 09:46:03
阅读次数:
332
AVL树本质上还是一棵二叉搜索树,它的特点是:
本身首先是一棵二叉搜索树。
带有平衡条件:每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1
#include
using namespace std;
const int LH = 1;
const int EH = 0;
const int RH = -1;
bool TRUE = 1;
bool F...
分类:
其他好文 时间:
2014-09-02 17:46:25
阅读次数:
176
最近几月一直在自学C语言和数据结构,先是写了排序二叉树,觉得平衡二叉树作为一个经典数据结构,有必要实现一下。网上看了些资料,在AVL和红黑树之间考虑,最后个人还是倾向于AVL。不同于标准AVL的是,笔者没有使用平衡因子,直接根据左右孩子的高度差值判断是否平衡。整个平衡二叉树是在普通二叉查找树的基础上...
分类:
编程语言 时间:
2014-08-31 15:39:21
阅读次数:
383
平衡二叉树的定义 平衡二叉查找树,又称AVL树。它除了具备二叉查找树的基本特征之外,还具有一个非常重要的特点:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值(平衡因子)不超过1。也就是说AVL树每个节点的平衡因子只可能是-1、0和1(左子树高度减去右子树高度)。那么如何是二叉查...
分类:
其他好文 时间:
2014-08-23 11:09:30
阅读次数:
207
当二叉树在某些情况下退化为类单链表时,它的查找、插入、删除运算复杂度将不再是O(logN)),解决问题的方法就是尽量维持树的平衡。节点的平衡因子定义为左子树高度减去右子树高度,AVL树中每个节点平衡因子为0,1,-1;具体代码: 1 #include 2 #include 3 using na...
分类:
其他好文 时间:
2014-08-17 17:01:22
阅读次数:
323