数据结构课:二叉树上机实验。为了保证树的平衡性,使用AVL平衡树。
#include
#include
#include
struct AvlNode;
typedef struct AvlNode *Position;
typedef struct AvlNode *AvlTree;
AvlTree MakeEmpty(AvlTree T);
Position Find(int x,...
分类:
其他好文 时间:
2014-11-13 22:36:18
阅读次数:
381
什么是平衡二叉树?
平衡二叉树是一种特殊的二叉排序树,又称AVL树,它可以是一棵空树,或者是具有下列性质的二叉排序树:左子树与右子树的深度之差的绝对值不超过1,且它的左右子树都是平衡二叉树。
二叉树上结点的平衡因子BF(BalanceFactor)定义为改结点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有结点的平衡因子只可能为-1,0或者1。
为什么要引申出平衡二叉树的概念?...
分类:
其他好文 时间:
2014-11-08 19:43:56
阅读次数:
291
1.AVL 树本质上还是一棵二叉搜索树,它的特点是:本身首先是一棵二叉搜索树。带有平衡条件: 每个结点的左右子树的高度之差的绝对值(平衡因子) 最多为 1。2. 数据结构定义AVL树节点类:1 template 2 class AVLTreeNode {3 public:4 T key;5 ...
分类:
编程语言 时间:
2014-11-03 20:43:18
阅读次数:
415
1 AVL树的定义
AVL树是一种自平衡二叉排序树,它的特点是任何一个节点的左子树高度和右子树的高度差在-1,0,1三者之间。AVL树的任何一个子树都是AVL树。
2 AVL树的实现
AVL树本质是一种二叉排序树,所以二叉排序树的任何性质AVL树都具有,但是AVL树稍微复杂的地方就是AVL树必须满足平衡条件,具体跟BST不同的地方主要体现在插入,删除操作。
插入操作:当插入之后可能会出现不...
分类:
编程语言 时间:
2014-11-03 19:25:21
阅读次数:
183
AVL树----javaAVL树是高度平衡的二叉查找树1.单旋转LL旋转理解记忆:1.在不平衡的节点的左孩子的左孩子插入导致的不平衡,所以叫LLprivate AVLTreeNode leftLeftRotation...
分类:
编程语言 时间:
2014-10-14 19:22:59
阅读次数:
230
RB Tree 红黑树 :http://blog.csdn.net/very_2/article/details/5722682AVL Tree :http://blog.csdn.net/collonn/article/details/20128205B[+/-] Tree :...
分类:
其他好文 时间:
2014-10-14 15:19:11
阅读次数:
137
[原文链接]1. 红黑树的特性Red-Black Tree ( RBT)也是一种自平衡二叉树,其统计性能要好于 AVL树 。它是在1972年由 鲁道夫·贝尔 发明的,它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它...
分类:
其他好文 时间:
2014-10-10 20:45:44
阅读次数:
392
平衡二叉树又称AVL树。它或者是颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。若将二叉树节点的平衡因子BF定义为该节点的左子树的深度减去它的右子树的深度,则平衡二叉树上全部节点的平衡因子仅仅可能为-1,0,1.仅仅要二叉树上有一个节...
分类:
其他好文 时间:
2014-10-05 17:55:38
阅读次数:
165
平衡二叉树(Balanced binarytree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。...
分类:
其他好文 时间:
2014-10-05 11:06:48
阅读次数:
261
一:平衡二叉树特点:平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。定义:平衡二叉树或为空树,或为如下性质的二叉排序树: (1)左右子树深度之差的绝对值不超过1; (...
分类:
其他好文 时间:
2014-09-25 22:12:17
阅读次数:
284