#include<stack> #include<utility> #include<allocators> #include<functional> using std::pair; using std::allocator; using std::less; using std::stack; ...
分类:
编程语言 时间:
2017-05-14 10:40:06
阅读次数:
216
二叉排序树集中了数组的查找优势以及链表的插入、删除优势,因此在数据结构中占有一定的地位。但在一定的情况下二叉排序树又有可能变为链表,例如插入从1~100的数,这时进行数据查找的效率就要降低。 为了解决二叉排序树这种左右子树深度不均匀的情况引入了一种平衡二叉树(AVLTree):任何一个节点的左右子树 ...
分类:
其他好文 时间:
2017-04-03 22:47:28
阅读次数:
276
最近学习了这3种树,感觉其实有很多相同的地方吧,首先是最重要的旋转操作,3种树都有 AvlTree left_left(AvlTree k1) { //if(height(k1->left)-height(k1->right)<2)return k1; AvlTree k2 = k1->left; ...
分类:
其他好文 时间:
2016-11-19 02:44:21
阅读次数:
170
首先说下好久没更新了,最近打游戏和工作都有点多,o(^▽^)o。 写这个AVL发现自己的代码风格好差,尤其是变量命名这块,后来意识到了,想去改,但是太多了,改了几个就不想改了,做这个是记录下自己的成长吧。 另外说下,调这个AVL真心有点烦了,前面写了一个,但是逻辑有点乱,基本的删除都测差不多ok了, ...
分类:
其他好文 时间:
2016-11-02 07:58:37
阅读次数:
163
#include <iostream>#include "AVLtree.cpp"using namespace std;int main(){ AVLtree <int> a; int i,n; cin>>n; for (i=0; i<n; i++) a.insert_(i+i*10); a.tr ...
分类:
其他好文 时间:
2016-09-21 23:01:08
阅读次数:
133
二叉排序树集中了数组的查找优势以及链表的插入、删除优势,因此在数据结构中占有一定的地位。但在一定的情况下二叉排序树又有可能变为链表,例如插入从1~100的数,这时进行数据查找的效率就要降低。 为了解决二叉排序树这种左右子树深度不均匀的情况引入了一种平衡二叉树(AVLTree):任何一个节点的左右子树 ...
分类:
其他好文 时间:
2016-08-31 00:38:08
阅读次数:
254
//AVTree.h //AVLTree.cpp ...
分类:
其他好文 时间:
2016-07-31 21:59:00
阅读次数:
280
#pragmaonce
#include<iostream>
usingnamespacestd;
#define NEG-1
#define ZERO0
#define POS1
template<classK,classV>
structAVLTreeNode//树的节点
{
K_key;
V_value;
AVLTreeNode*_left;
AVLTreeNode*_right;
AVLTreeNode*_parent;
int_bf;
A..
分类:
编程语言 时间:
2016-07-20 15:10:18
阅读次数:
256
AVL是平衡搜索二叉树,它的主要特点在于:(1)左子树和右子树的高度差绝对值<1,(2)树中的每个子树都是AVL树,(3)每个节点都有一个平衡因子(-1、0、1),平衡因子的大小等于右子树的高度减左子树的高度下面就是一个AVL树:其中,这个树满足左子树和右子树的高度差绝对..
分类:
其他好文 时间:
2016-07-19 11:30:36
阅读次数:
148
AVL树AVL树又称为高度平衡的二叉搜索树,是1962年有俄罗斯的数学家G.M.Adel‘son-Vel‘skii和E.M.Landis提出来的。它能保持二叉树的高度平衡,尽量降低二叉树的高度,减少树的平均搜索长度。AVL树的性质左子树和右子树的高度之差的绝对值不超过1树中的每个左子树和右子树都是AVL..
分类:
其他好文 时间:
2016-07-19 02:13:18
阅读次数:
285