转自维基百科红黑树是一种平衡二叉搜索树,它可以在O(log n)时间内做查找,插入和删除,这里的n是树中元素的数目。性质:红黑树是每个节点都带有颜色属性的二叉查找树,颜色为红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:性质1. 节点是红色或黑色。性质2. 根...
分类:
其他好文 时间:
2014-07-27 10:06:42
阅读次数:
206
B树、B-树、B+树、B*树、红黑树rbtree 二叉排序树、trie树Double Array 字典查找树
B树
即二叉搜索树:
1.所有非叶子结点至多拥有两个儿子(Left和Right);
2.所有结点存储一个关键字;
3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;
...
分类:
其他好文 时间:
2014-07-26 02:24:36
阅读次数:
232
一、基本概念1、赫夫曼(Huffman)树又称最优二叉树或最优搜索树,是一种带权路径长度最短的二叉树。在许多应用中,常常赋给树中结点一个有某种意义的实数,称此实数为该结点的权。从树根结点到该结点之间的路径长度与该结点上权的乘积称为结点的带权路径长度(WPL),树中所有叶子结点的带权路径长度之和称为该...
分类:
其他好文 时间:
2014-07-26 00:33:36
阅读次数:
255
实现: 1 #ifndef BINARY_SEARCH_TREE_H 2 #define BINARY_SEARCH_TREE_H 3 4 #include "dsexceptions.h" 5 #include // For NULL 6 using namespace st...
分类:
其他好文 时间:
2014-07-24 10:03:33
阅读次数:
398
hashtable
---------------------------------------------------------------------------
二叉搜索树具有对数平均时间的表现,它建立在输入数据有足够的随机性的假设
hashtable 有常数平均时间的表现,基于统计,不需依赖输入元素的随机性
hashtalbe 的简单实现:
所有元素都 16-bits 不带正负号的整数,范围 0~65535,配置一个 array,索引号码为 0~65535,初值全部为 0 。
每一个元素...
分类:
其他好文 时间:
2014-07-23 13:23:47
阅读次数:
379
Problem Description判断两序列是否为同一二叉搜索树序列Input开始一个数n,(1#include#define max 512;int main(){ int i,j,n,c; int tree[512],tree1[512]; char s[22]; ...
分类:
其他好文 时间:
2014-07-22 22:48:54
阅读次数:
181
RB-tree(红黑树)
--------------------------------------------------------------------------
平衡二叉搜索树 --> 平衡可提高搜索效率
常见的平衡二叉搜索树有:
AVL-tree(任何节点的左右子树高度相差最多 1)、红黑树、AA-tree
AVL-tree
破坏平衡的情况及恢复平衡的方法
恢复时要先找到失去平衡的点
外侧插入 --> 单旋转
内侧插入 --> 双旋转
图5-10
图5-11
图5-12
红黑树是...
分类:
其他好文 时间:
2014-07-22 22:34:33
阅读次数:
316
二叉搜索树(binary search tree) 集合(set)和映射(map) 代码(C++)本文地址: http://blog.csdn.net/caroline_wendy二叉搜索树(binary search tree)作为常用而高效的数据结构, 标准库中包含实现, 在标准库的集合(set)和映射(map), 均使用.具体操作代码如下.代码:/*
* main.cpp
*
* C...
分类:
其他好文 时间:
2014-07-21 15:48:15
阅读次数:
190
二叉搜索树(binary search tree) 代码(C)本文地址: http://blog.csdn.net/caroline_wendy二叉搜索树(binary search tree)可以高效的进行插入, 查询, 删除某个元素, 时间复杂度O(logn).简单的实现方法如下.代码:/*
* main.cpp
*
* Created on: 2014.7.20
* Au...
分类:
其他好文 时间:
2014-07-21 15:15:16
阅读次数:
273
对于一个二叉搜索树, 要想找到这棵树的最小元素值, 我们只需要从树根开始, 沿着left 孩子指针一直走, 知道遇到NULL(即走到了叶子), 那么这个叶子节点就存储了这棵二叉搜索树的最小元素。 同理, 从根节点开始, 沿着right 孩子指针, 最终找到的是最大关键字的节点。
也就是说寻找BST最小关键字的元素和最大关键字的元素的代码是对称的。伪代码如下:
TREE_MINIMUM(x...
分类:
编程语言 时间:
2014-07-21 09:28:27
阅读次数:
241