二叉查找树(binary search tree,又叫二叉搜索树或者二叉排序树)是一种非常重要的数据结构,许多高级树结构都是二叉查找树的变种,例如AVL树、红黑树等,理解二叉查找树对于后续树结构的学习有很好的作用。同时利用二叉查找树可以进行排序,称为二叉排序,也是很重要的一种思想。本文主要参考算法导论,详细介绍二叉查找树的原理及具体的python和java代码实现。1.定义查找树是一种数据结构,它支...
分类:
其他好文 时间:
2016-06-24 15:28:13
阅读次数:
130
一红黑树简介
1 java代码定义
二红黑树的时间复杂度和相关证明
时间复杂度为 Olgn
定理一棵含有n个节点的红黑树的高度至多为2logn1
三旋转
1 左旋
2 右旋
3 区分左旋和右旋
四添加Case 1叔叔是红色
Case 2叔叔是黑色且当前节点是右孩子
Case 3叔叔是黑色且当前节点是左孩子
五删除Case 1x是黑黑节点x的兄弟节点是红色
Case 2 x是黑黑节点x的兄弟节点是黑色...
分类:
其他好文 时间:
2016-06-24 15:17:02
阅读次数:
184
剑指offer给出两类方法: 1,借助快排的思想,需要修改输入数组的元素,时间复杂度O(n) 2,借助STL中set或者multiset,因为它们的底层数据结构是红黑树实现的,插入数据时间复杂度为O(logk),所以总的时间复杂度为O(nlogn); 方法2的代码如下: ...
分类:
其他好文 时间:
2016-06-23 22:09:27
阅读次数:
146
B~树 1.前言: 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树 (Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结 ...
分类:
其他好文 时间:
2016-06-21 20:33:13
阅读次数:
175
介绍另一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf Bayer于1972年发明,当时被称为平衡二叉B树(symmetric binary B-trees),1978年被Leonidas J. Guibas 和 Robert Sedgewick改成一个比较摩登的名字:红黑树。
红黑树和之前所讲的AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡...
分类:
其他好文 时间:
2016-06-21 06:51:19
阅读次数:
171
/******************
环境:http://anycodes.cn/zh/
AVL有高度标签
红黑树更有颜色标记
http://blog.csdn.net/whucyl/article/details/17289841
我们总是以ABC3个结点为例子插入元素后C总是不平衡的
LLRR较为简单交换后C还是出于下方
LRRL统一的一句就是C总提出交换子树,要翻..
分类:
其他好文 时间:
2016-06-19 18:35:09
阅读次数:
264
关于B树的学习还是需要做点笔记。 B树是为磁盘或者其他直接存取辅助存储设备而设计的一种平衡查找树。B树与红黑树的不同在于,B树可以有很多子女,从几个到几千个。比如一个分支因子为1001,高度为2的B树,他可以存储超过10亿个关键字,尽管如此,因为根节点(只有一个)保留在主存中,故这可书中,寻找某一个 ...
分类:
其他好文 时间:
2016-06-19 17:05:01
阅读次数:
188
红黑树有什么特征,如何保持平衡的? 它或者是一颗空树,或者是具有一下性质的二叉查找树: 1.节点非红即黑。 2.根节点是黑色。 3.所有NULL节点称为叶子节点,且认为颜色为黑。 4.所有红节点的子节点都为黑色。 5.从任一节点到其叶子节点的所有路径上都包含相同数目的黑节点。 平衡分析: 稍微根据以 ...
分类:
其他好文 时间:
2016-06-17 19:11:04
阅读次数:
230
1.什么是mapmap是一个键值对容器。在处理一对一数据是,很有用。 2.map数据结构的特点map内部自建一颗红黑树,这棵树具有对数据自动排序的功能,因此,map内的数据都是按key的值排好序的。 3.map数据插入数据的插入有三种方法:第一种,调用insert函数,插入pair类型数据示例如下所 ...
分类:
编程语言 时间:
2016-06-15 20:30:13
阅读次数:
240
TreeMap 概要
基于红黑树的NavigableMap
put,get,remove,containsKey操作时间复杂度 log(n)
提供给SortedMap的比较器或者自身的比较函数必须与equals方法一致,因为对于SortedMap,是否相等是基于compare或者compareTo方法的,如果compare方法与equals方法不一致,SortedMap也可以工作,只是与Map接口(...
分类:
编程语言 时间:
2016-06-13 13:51:11
阅读次数:
225