AVL树是高度平衡的二叉搜索树,按照二叉搜索树(Binary Search Tree)的性质,AVL首先要满足: 若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不为空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉搜索树。 AVL树的性质: ...
分类:
其他好文 时间:
2016-07-07 17:17:53
阅读次数:
275
AVL树是高度平衡的二叉搜索树,较搜索树而言降低了树的高度;时间复杂度减少了使其搜索起来更方便;1.性质:(1)左子树和右子树高度之差绝对值不超过1;(2)树中每个左子树和右子树都必须为AVL树;(3)每一个节点都有一个平衡因子(-1,0,1:右子树-左子树)(4)遍历一个二..
分类:
其他好文 时间:
2016-07-03 23:48:44
阅读次数:
521
AVL树的旋转。居然1A了.... 了解旋转方式之后,数据较小可以当做模拟写。 ...
分类:
其他好文 时间:
2016-07-01 10:22:20
阅读次数:
147
一,红黑树介绍 什么是红黑树?为什么需要红黑树? 对数据集合进行 查找、插入、删除、找最大结点、找最小结点、找前驱/后继结点 是一种很常见的需求,那如何找到一种数据结构来高效地实现前面的各个基本操作呢?根据这篇博文对树进行的基本介绍,大概也解各种树的特点。AVL树虽然能保证各种基本操作在O(logN ...
分类:
其他好文 时间:
2016-06-26 16:46:17
阅读次数:
197
二叉查找树(binary search tree,又叫二叉搜索树或者二叉排序树)是一种非常重要的数据结构,许多高级树结构都是二叉查找树的变种,例如AVL树、红黑树等,理解二叉查找树对于后续树结构的学习有很好的作用。同时利用二叉查找树可以进行排序,称为二叉排序,也是很重要的一种思想。本文主要参考算法导论,详细介绍二叉查找树的原理及具体的python和java代码实现。1.定义查找树是一种数据结构,它支...
分类:
其他好文 时间:
2016-06-24 15:28:13
阅读次数:
130
剑指offer第三十九题-拓展:输入一棵二叉树的根结点,判断该树是不是平衡二叉树(AVL) ...
分类:
其他好文 时间:
2016-06-22 21:50:34
阅读次数:
183
介绍另一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf Bayer于1972年发明,当时被称为平衡二叉B树(symmetric binary B-trees),1978年被Leonidas J. Guibas 和 Robert Sedgewick改成一个比较摩登的名字:红黑树。
红黑树和之前所讲的AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡...
分类:
其他好文 时间:
2016-06-21 06:51:19
阅读次数:
171
/******************
环境:http://anycodes.cn/zh/
AVL有高度标签
红黑树更有颜色标记
http://blog.csdn.net/whucyl/article/details/17289841
我们总是以ABC3个结点为例子插入元素后C总是不平衡的
LLRR较为简单交换后C还是出于下方
LRRL统一的一句就是C总提出交换子树,要翻..
分类:
其他好文 时间:
2016-06-19 18:35:09
阅读次数:
264
AVL树是高度平衡的二叉树,任何节点的两个子树的高度差别<=1 实现AVL树 定义一个AVL树,AVLTree,定义AVLTree的节点内部类AVLNode,节点包含以下特性: 1.key——关键字,对AVL树的节点进行排序 2.left——左子树 3.right——右子树 4.height——高度 ...
分类:
编程语言 时间:
2016-06-19 18:24:35
阅读次数:
187