堆的定义 堆通常是一个可以被看做一棵树,它满足下列性质: 堆中任意节点的值总是不大于(不小于)其子节点的值; 堆总是一棵完全树。 将任意节点不大于其子节点的堆叫做最小堆或小根堆,而将任意节点不小于其子节点的堆叫做最大堆或大根堆。常见的堆有二叉堆、左倾堆、斜堆、二项堆、斐波那契堆等等。 二叉堆 堆有两 ...
分类:
其他好文 时间:
2017-08-31 11:08:51
阅读次数:
211
2017-08-29 14:35:55 writer:pprp AVL树就是带有平衡条件的二叉查找树。每个节点的左子树和右子树高度相差最多为1的二叉查找树 空树的高度定为-1 对树的修正称为旋转 对内部的来说是双旋,对外部的调整修正是单旋 由于一次旋转总能解决问题,因此编写非递归程序要比编写递归程序 ...
分类:
其他好文 时间:
2017-08-29 21:45:40
阅读次数:
217
P1133 教主的花园 题目描述 教主有着一个环形的花园,他想在花园周围均匀地种上n棵树,但是教主花园的土壤很特别,每个位置适合种的树都不一样,一些树可能会因为不适合这个位置的土壤而损失观赏价值。 教主最喜欢3种树,这3种树的高度分别为10,20,30。教主希望这一圈树种得有层次感,所以任何一个位置 ...
分类:
其他好文 时间:
2017-08-29 00:03:11
阅读次数:
165
https://www.vijos.org/p/1470 描述 教主有着一个环形的花园,他想在花园周围均匀地种上n棵树,但是教主花园的土壤很特别,每个位置适合种的树都不一样,一些树可能会因为不适合这个位置的土壤而损失观赏价值。 教主最喜欢3种树,这3种树的高度分别为10,20,30。教主希望这一圈树 ...
分类:
其他好文 时间:
2017-08-26 15:09:05
阅读次数:
147
AVL 树要在插入和删除结点后保持平衡,旋转操作必不可少。关键是理解什么时候应该左旋、右旋和双旋。在Youtube上看到一位老师的视频对这个概念讲解得非常清楚,再结合算法书和网络的博文,记录如下。 1.1 AVL 的旋转 一棵AVL树是其每个节点的左子树和右子树的高度差最多为1的二叉查找树(空树高度 ...
分类:
其他好文 时间:
2017-08-24 21:24:15
阅读次数:
161
B+/-Tree原理 B-Tree介绍 B-Tree是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至 ...
分类:
其他好文 时间:
2017-08-18 15:25:58
阅读次数:
145
1. 高度:树T所有节点深度的最大值,节点V对应子树高度为该节点的高度,根节点高度为整棵树的高度 2.深度:节点V到根节点R的唯一路径所经过的数目称为V的深度 3.huffman编码:构造出的带权平均深度最小的二叉树为huffman树(权值越大,深度越小) 4.二叉搜索树:任意节点R的左(右)子树中 ...
分类:
其他好文 时间:
2017-08-09 23:47:04
阅读次数:
221
洛谷-教主的花园-动态规划 题目描述 教主有着一个环形的花园,他想在花园周围均匀地种上n棵树,但是教主花园的土壤很特别,每个位置适合种的树都不一样,一些树可能会因为不适合这个位置的土壤而损失观赏价值。 教主最喜欢3种树,这3种树的高度分别为10,20,30。教主希望这一圈树种得有层次感,所以任何一个 ...
分类:
其他好文 时间:
2017-08-09 23:46:30
阅读次数:
214
序 查找树是一种数据结构,它支持多种动态集合操作。包含Search、Minimum、Maximum、PreDecessor、Successor、Insert、Delete等。它既能够用作字典,也能够用作优先级队列;在二叉查找树(Binary Search Tree)上执行基本操作的时间与树的高度成正 ...
分类:
编程语言 时间:
2017-08-08 09:29:01
阅读次数:
266
二叉平衡树的创建 一些废话 最近在重温数据结构以应对即将到来的面试。发现很多当年学过的东西都忘掉了,就拿二叉平衡树来说,看到最后我才恍然大悟:哦,原来这东西我之前真的学过!而且貌似当时也写过测试的代码,只是没有保留下来。这次再整理一下,留在博客里以便查阅,同时也分享给大家,和大家交流一下。 再感慨一 ...
分类:
编程语言 时间:
2017-08-06 16:03:42
阅读次数:
188