B-树 一种 自平衡的 多路 查找树。它在文件系统里很有用。
一个m阶的B-树,要么是空树,要么是满足这些特性的树。、
1.树 最多 有 m个分支。
2.树的根 最少 两个子树。
3. 树的非终端叶子节点 最少 m/2 向上 取整 个 子树。
4.所有叶子节点 都在 一层。
它的节点 结构: (N,P0,K1,P1,K2,p2......Kn,Pn)
其中 N 是 节...
分类:
其他好文 时间:
2015-04-24 14:25:00
阅读次数:
168
B Tree's Max Depth:平衡多路查找树的最大高度证明
分类:
其他好文 时间:
2015-04-22 23:37:58
阅读次数:
97
二叉查找树在数据结构中也经常会被用到。所谓二叉查找树就是从根节点开始,左边的节点比右边的节点小。显然BST的前序遍历就是一个从小到大的有序数组。
JAVA构建二叉查找树:
// 构建一颗二叉查找树
/*原理:
* 下一个数据和根节点比较,比根大放在根的右边,然后再跟节点的右孩子节点比较
* 比根节点小,则放在根节点的左侧,
* 如果等于根,那么不操作
...
分类:
其他好文 时间:
2015-04-22 18:17:42
阅读次数:
128
AVL树是带有平衡条件的二叉查找树,其查找和删除的时间复杂度为logn,是对二叉查找树的改进,我们将节点的左子树和右子树深度之差称为平衡因子(BF),其中的每一个节点的平衡因子的绝对值不大于1。
距离插入节点最近的,并且平衡因子绝对值大于1的节点为根的子树,称为最小不平衡子树。
要实现AVL树,就必须保证在插入的时候消除不平衡的子树,即通过某种方式,使每次插入一个节点,都是平衡的BST树,下面...
分类:
编程语言 时间:
2015-04-21 09:55:28
阅读次数:
385
二叉排序树 是一种 动态 查找树,它的 创建 是在 查找中 生成的。 当 查找 失败时,它将 数 插入到 合适的 位置中去。 二叉查找树的 左子树上的值 父亲的 值 小,而 右子树上的值 总是 比 父节点 大。这样 查找 类似与 二分 查找,其 最多 查找 的 次数 等于 树的 深度。
下面的代码 主要 是 两方面:插入 节点 和 删除 节点。
下面 给出 代码, 欢迎 指出 代码 不...
分类:
编程语言 时间:
2015-04-21 09:52:24
阅读次数:
163
查找顺序表时,若 每个元素的概率 都相等 用 二分查找 效率 最高。但是 如果 概率 不相等时,(SOST)静态最优查找表 效率 要高于 二分查找。静态最优查找表 是 使得 从 根 到 每个节点的路径 长度 和 权值 乘积 之和 最小。
书上说的 静态最优 查找树的创建 时间 复杂度 较高,所以 用 次优 查找树(NOST) 代替。
下面 上代码:
// Nost.cpp : 定义控制台应用...
分类:
其他好文 时间:
2015-04-20 17:07:05
阅读次数:
192
二叉树首先要有树节点templateclass BinaryNode{public: T element; BinaryNode *left; BinaryNode *right;public: BinaryNode(T passelement); ~BinaryNod...
分类:
编程语言 时间:
2015-04-16 11:57:47
阅读次数:
132
1 #include "stdafx.h" 2 /* ZQU OJ 1377 二叉查找树 */ 3 #include 4 #include 5 #include 6 #include 7 #include 8 bool FLAG = false; 9 using nam...
分类:
其他好文 时间:
2015-04-14 11:10:22
阅读次数:
110
#ifndef _BIN_TREE_H
#define _BIN_TREE_H
#include
#include
#include
struct _Tree_node
{
int data;
struct _Tree_node *left;
struct _Tree_node *right;
};
typedef int element_type;
t...
分类:
其他好文 时间:
2015-04-13 20:56:40
阅读次数:
122
输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \ 4 8 12 16转换成双向链表4=6=8=10=12=14=16解:二元查找树: 它首先要是一棵二元树,在这基础上...
分类:
编程语言 时间:
2015-04-13 18:50:22
阅读次数:
190