首先要说AVL树,我们就必须先说二叉查找树,先介绍二叉查找树的一些特性,然后我们再来说平衡树的一些特性,结合这些特性,然后来介绍AVL树。 一、二叉查找树 1、二叉树查找树的相关特征定义 二叉树查找树,又叫二叉搜索树,是一种有顺序有规律的树结构。它可以有以下几个特征来定义它: (1)首先它是一个二叉 ...
分类:
其他好文 时间:
2017-06-02 23:02:01
阅读次数:
279
国内的数据结构教材一般是按照Knuth定义,即“阶”定义为一个节点的子节点数目的最大值。 对于一棵m阶B-tree,每个结点至多可以拥有m个子结点。各结点的关键字和可以拥有的子结点数都有限制 规定m阶B-tree中, 根结点至少有2个子结点,除非根结点为叶子节点,相应的,根结点中关键字的个数为1~m ...
分类:
其他好文 时间:
2017-05-30 15:48:10
阅读次数:
243
排序:插入排序:每次从剩余数据中选取一个最小的,插入已经排序完成的序列中合并排序:将数据分成左右两组分别排序,然后合并,对每组数据的排序递归处理。冒泡排序:重复交换两个相邻元素,从a[1]开始向a[0]方向冒泡,然后a[2]...当a[i]无法继续往前挤的时候说明前面的更小了..
分类:
编程语言 时间:
2017-05-26 23:32:05
阅读次数:
263
package avitree; /** * 平衡二叉查找树类 * * @param <T> */ public class AvlTree<T extends Comparable<? super T>> { public static void main(String[] args) { Avl ...
分类:
其他好文 时间:
2017-05-26 13:25:14
阅读次数:
185
对二叉查找树找到两个节点的最小公共祖先:可以根据二叉查找树的性质:左子树的节点值比根节点的值小,右子树的节点值比根节点值大 以下是二叉树节点的类的定义 ...
分类:
其他好文 时间:
2017-05-24 19:20:48
阅读次数:
166
/** *有这样一个需求 *有一个学校有2个班(一班,二班) *每个班级分2个小组(一班一组,一班二组,二班一组,二班二组) *学校计算机教室有限,每一个小组分着来上课. *考试的时候大家一起考 *请用程序来模拟这个需求 */ (function(){ //不用组合模式 //学校类 var scho... ...
分类:
Web程序 时间:
2017-05-23 08:11:16
阅读次数:
277
TreeNode createMinimalBST(int arr[], int start, int end) { if (end < start) { return null; } int mid = start + (end - start) / 2; TreeNode n=new TreeN ...
分类:
编程语言 时间:
2017-05-20 17:16:59
阅读次数:
101
参考: http://www.cppblog.com/cxiaojia/archive/2012/08/20/187776.html 一 定义 平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。1962年,G.M. Adelson-Vel ...
分类:
其他好文 时间:
2017-05-19 21:08:41
阅读次数:
217
1. 二叉查找树的定义: 左子树不为空的时候。左子树的结点值小于根节点,右子树不为空时,右子树的结点值大于根节点。左右子树分别为二叉查找树 2. 二叉查找树的最左边的结点即为最小值,要查找最小值。仅仅需遍历左子树的结点直到为空为止。同理,最右边的结点结尾最大值。要查找最大值,仅仅需遍历右子树的结点直 ...
分类:
编程语言 时间:
2017-05-15 11:52:59
阅读次数:
147
注:本节主要讨论最大堆(最小堆同理)。 一、堆的概念 堆,又称二叉堆。同二叉查找树一样,堆也有两个性质,即结构性和堆序性。 1、结构性质: 堆是一棵被全然填满的二叉树。有可能的例外是在底层。底层上的元素从左到右填入。这种树称为全然二叉树(complete binary tree)。下图就是这样一个样 ...
分类:
其他好文 时间:
2017-05-14 12:22:30
阅读次数:
126