伸展树
伸展树(Splay Tree),也叫分裂树,是一种二叉排序树,它由Daniel Sleator和Robert Tarjan创造,后者对其进行了改进。
假设想要对一个二叉查找树执行一系列的查找操作。为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。于是想到设计一个简单方法,在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。splaytre...
分类:
其他好文 时间:
2015-06-04 01:03:35
阅读次数:
187
本文转载自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运...
分类:
其他好文 时间:
2015-05-24 23:21:28
阅读次数:
234
树的主要内容 树型结构:非线性结构,以分支关系定义的层次结构。
主要内容:
树和二叉树的概念、性质
二叉树的存储
二叉树的遍历
线索二叉树
树与二叉树的转化
Huffman树(最优树)
树的定义树(Tree)是n(n≧0)个结点的有限集合T,若n=0时称为空树,否则:
⑴ 有且...
分类:
其他好文 时间:
2015-04-30 10:46:44
阅读次数:
171
双亲表示法(顺序存储结构) 用一组连续的存储空间来存储树的结点,同时在每个结点中附加一个指示器(整数域) ,用以指示双亲结点的位置(下标值) 。数组元素及数组的类型定义如下:
#define MAX_SIZE 100
typedef struct PTNode
{ ElemType data ;
int parent ;
}PTNode ;typedef struct
{ P...
分类:
其他好文 时间:
2015-04-30 10:38:50
阅读次数:
111
1、无根树转有根树
#include
#include
#include
#include
#define LL long long
#define INF 0x7fffffff
#include
using namespace std;
const int maxn = 1000005;
int p[maxn];
int n;
int root;
vector G[maxn];
...
分类:
其他好文 时间:
2015-04-15 09:44:26
阅读次数:
156
树是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中:1.有且仅有一个特定的称为根的结点2.当n>1时其余结点可分为m(m>0)个互不相交的有限集T1,T2。。。。。Tn其中每一个集合本身又是一棵树,并且称为根的子树。结点拥有的子树数称为结点的度,度为0的..
分类:
其他好文 时间:
2015-04-12 06:58:58
阅读次数:
221
学校数据结构的课程实验之一。用到的数据结构:B-树基本功能:对虚拟书库的图书进行查看、增加、删除、修改。主函数:#include #include "Library.h"using namespace std;int main(){ Library myLib=Library("books.t...
分类:
其他好文 时间:
2015-04-09 00:47:00
阅读次数:
269
我是看着《啊哈!算法》这本书完成并查集的入门,本想举出另外的栗子,奈何。。。书上的栗子已经很贴切了。
首先引入一个问题:已知有10个土匪,警方需要需要一点点顺藤摸瓜最后挖出他们各自背后的团伙一锅端,经过一段时间的侦查警方的得到了9条确切线索,分别能说明那两个土匪的归顺关系。那么请问此次行动总共要打掉几个团伙?
输入数据如下:
按照第一行输入人数n,线索数m,接下来的m行输入线索,每行线索...
分类:
其他好文 时间:
2015-04-06 09:00:20
阅读次数:
130
基础的树链剖分题目,不过是边权,可以向下映射成点权或者按边剖分。
VIEW CODE
#include
#include
#include
#include
#include
#include
using namespace std;
const int mmax=10010;
const int inf=0x3fffffff;
struct edge
{
int st,en,cos...
分类:
其他好文 时间:
2015-04-05 17:35:02
阅读次数:
116