题目链接:http://acm.hdu.edu.cn/statistic.php?pid=2193&from=126&lang=&order_type=0 好吧。水题一道,原本以为是一道写AVL树的想写来练练手。没有想到却是这样一道水题,好吧,猥琐的水过。 题目意思: 题目大意:n个点的AVL树最多 ...
分类:
其他好文 时间:
2017-05-13 20:05:04
阅读次数:
141
AVL树本质上还是一棵二叉搜索树,它的特点是: 1.本身首先是一棵二叉搜索树。 2.带有平衡条件:每个结点的左右子树的高度之差的绝对值最多为1(空树的高度为-1)。 也就是说,AVL树,本质上是带了平衡功能的二叉查找树(二叉排序树,二叉搜索树)。 对Avl树进行相关的操作最重要的是要保持Avl树的平 ...
分类:
其他好文 时间:
2017-05-03 21:59:12
阅读次数:
800
数据结构之树 平均操作时间O(log N). 定义 定义树的一种自然方式是递归方法。 一棵树是一些节点的集合。这个集合可以是空集;若非空,则这一颗树由称做根的节点r以及0个或多个非空的树T1,T2,…..Tk组成,这些子树中每一棵的根都被来自根r的一条有向的边所连接。 一棵树是N个节点和N-1条边的 ...
分类:
其他好文 时间:
2017-05-01 12:57:11
阅读次数:
232
Scheme 的表达, 优雅. #lang scheme ( define nil '() ) ( define ( root tree )( car tree ) ) ( define ( left-tree tree )( cadr tree ) ) ( define ( right-tree ...
分类:
其他好文 时间:
2017-05-01 09:56:59
阅读次数:
240
二叉查找树查找插入和删除的时间复杂度都为O(log N)。但它有个弊端。假设输入的数据是排序数据。那么代价巨大,由于树将仅仅由那么没有左(或右)儿子的节点组成。一种解决方法是找平衡条件:不论什么节点的深度不能过深。最老的一种平衡查找树。即AVL树。另外,较新的方法是放弃平衡条件,同意树有不论什么的深 ...
分类:
其他好文 时间:
2017-04-26 10:16:49
阅读次数:
203
浅谈平衡二叉树 平衡二叉树(Balanced binarytree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。 一、平衡二叉树的基本介绍 定义:平衡二叉树或为空树,或为例如以下性质的二叉排序树: (1)左右子树深度 ...
分类:
其他好文 时间:
2017-04-18 22:06:26
阅读次数:
123
引言 二叉查找树是一种能将链表插入的灵活性和有序数组查找的高效性结合起来的一种重要的数据结构,它是我们后面学习红黑树和AVL树的基础,本文我们就先来看一下二叉查找树的实现原理。 二叉查找树的定义 二叉查找树最重要的一个特征就是:每个结点都含有一个Comparable的键及其相关联的值,该结点的键要大 ...
分类:
其他好文 时间:
2017-04-08 13:38:06
阅读次数:
189
【0】README 0.0) 本文部分idea 转自:http://blog.csdn.net/collonn/article/details/20128205 0.1) 本文仅针对性地分析AVL树的单旋转(左左单旋转和右右单旋转)和 双旋转(左右双旋转和右左单旋转)的内部核心技巧; 0.2) 不得 ...
分类:
其他好文 时间:
2017-04-05 20:07:45
阅读次数:
313
树旋转是在二叉树中的一种子树调整操作, 每一次旋转并不影响对该二叉树进行中序遍历的结果. 树旋转通常应用于需要调整树的局部平衡性的场合. 树旋转包括两个不同的方式, 分别是左旋转和右旋转. 两种旋转呈镜像, 而且互为逆操作. 平衡二叉树在进行插入操作的时候可能出现不平衡的情况,AVL树即是一种自平衡 ...
分类:
其他好文 时间:
2017-04-05 09:32:01
阅读次数:
267
下面对本算法做原理上的介绍: 1、 如何回溯修改祖先结点的平衡因子 我们知道,在AVL树上插入一个新结点后,有可能导致其他结点BF值的改变,哪些结点的BF值会被改变?如何计算新的BF值呢?要解决这些问题,我们必须理解以下几个要点: l 只有根结点到插入结(橙色结点)点路径(称为插入路径)上的结点的B ...
分类:
其他好文 时间:
2017-04-05 09:24:25
阅读次数:
222