数据结构总结---树
2016-07-04 17:34
726 查看
仅以此文纪念过往岁月
数据结构中树
1.二叉树
其劣势在于输入Key的顺序,如果输入顺序为排序过的值,那构造的树,退化为线性。如果是普通二叉树,在其Key已知的情况下构造,可以使用随机序列法构造二叉树
2.vEB树
vEB树全称Van Emde Boas Trees 其树的结构图如下:
其核心为2的指数分解确定min和max的值,树的层数为loglogN,以2为底,该树会使用大量内存需要Key值为0~N-1,并且Key值不能够重复,对于Insert,delete,search 均在loglogN时间以内。
3.红黑树
红黑树的特性如下:
1. 每个结点要么是红的,要么是黑的。
2. 根结点是黑的。
3. 每个叶结点,即空结点(NIL)是黑的。(每一个Leaf均为黑色空节点)
4.如果一个结点是红的,那么它的俩个儿子都是黑的。
5.对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点。
红黑树是一种带颜色的树,其保证树的Insert,delete,search在一定时间范围以内,红黑树的关键在于节点的着色,由于在insert和delete额时会把树的特性不符合上述特征,需要重新调整。
4.KD树
一种多维的特殊树结构,对矢量中每一维做分割,采用最大均方差的维度作为分割点,常用于在大规模的高维数据空间进行最近邻查找和近似最近邻查找
5.B树
B树的核心在于f分裂和合并
在树构造和插入时,会使用分裂
在树删除时,会使用合并
树的操作
1.构造
根据初始值构造树
2.增加
树增加一个节点
3.删除
树删除一个节点
4.查询
查询某一个值
数据结构中树
1.二叉树
其劣势在于输入Key的顺序,如果输入顺序为排序过的值,那构造的树,退化为线性。如果是普通二叉树,在其Key已知的情况下构造,可以使用随机序列法构造二叉树
2.vEB树
vEB树全称Van Emde Boas Trees 其树的结构图如下:
其核心为2的指数分解确定min和max的值,树的层数为loglogN,以2为底,该树会使用大量内存需要Key值为0~N-1,并且Key值不能够重复,对于Insert,delete,search 均在loglogN时间以内。
3.红黑树
红黑树的特性如下:
1. 每个结点要么是红的,要么是黑的。
2. 根结点是黑的。
3. 每个叶结点,即空结点(NIL)是黑的。(每一个Leaf均为黑色空节点)
4.如果一个结点是红的,那么它的俩个儿子都是黑的。
5.对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点。
红黑树是一种带颜色的树,其保证树的Insert,delete,search在一定时间范围以内,红黑树的关键在于节点的着色,由于在insert和delete额时会把树的特性不符合上述特征,需要重新调整。
4.KD树
一种多维的特殊树结构,对矢量中每一维做分割,采用最大均方差的维度作为分割点,常用于在大规模的高维数据空间进行最近邻查找和近似最近邻查找
5.B树
B树的核心在于f分裂和合并
在树构造和插入时,会使用分裂
在树删除时,会使用合并
树的操作
1.构造
根据初始值构造树
2.增加
树增加一个节点
3.删除
树删除一个节点
4.查询
查询某一个值
相关文章推荐
- 内存分配
- 数据结构:遍历一次获得链表的倒数第N个节点
- 数据结构-归并排序
- 体会大师们的智慧-优化冒泡排序
- 数据结构与算法简记:归并排序
- 工程实践中最常用的10大数据结构与算法讲解
- 数据结构-归并排序
- 数据结构-快速排序算法
- 数据结构-二分查找
- 常用数据结构
- 数据结构-冒泡排序算法
- 《Java数据结构与算法》笔记-CH5-链表-9实现带迭代器的链表
- 数据结构笔记:线性表顺序存储结构(C语言)
- 数据结构专题——线段树
- 常见Java数据结构&优缺点
- C语言-数据结构-循环链表实例-维吉尼亚(vigener)密码源代码
- 数据结构 如何仅用递归函数和栈操作逆序一个栈
- 数据结构和算法学习之路
- 数据结构之Dijkstra算法
- 数据结构学习之双链表