第一节、B树、B+树、B*树 1.前言: 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree?(B~Tree)。前三者...
分类:
其他好文 时间:
2014-09-24 21:46:38
阅读次数:
244
红黑树
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
什么是红黑树呢?顾名思义,跟枣树类似,红黑树是一种叶子是黑色果子是红色的树。。。
当然,这个是我说的。。。
《算法导论》上可不是这么说的:
如果一个二叉查找树满足下面的红黑性质,那么则为一个红黑树。
1)每个节点或是红的,或者是黑的。
2)每个叶子节点(NIL...
分类:
其他好文 时间:
2014-09-21 11:38:00
阅读次数:
148
STL提供了许多好用的数据结构与算法,使我们不必为做许许多多的重复劳动。STL里实现了一个树结构-Red-Black Tree,它也是STL里唯一实现的一个树状数据结构,并且它是map, multimap,set,multiset的底层实现,如果学会了Red-Black Tree,那么对我们高效的运...
分类:
其他好文 时间:
2014-09-15 15:49:59
阅读次数:
343
多看几遍索引操作将原始数据引入可被高效查找的对照表中,以便能够对这些内容进行快速搜索。这里的对照表的结构是什么样的?是二叉排序树还是红黑树?索引是一个精心设计的数据结构。
分类:
其他好文 时间:
2014-09-15 14:16:48
阅读次数:
122
好久之前一直有种困惑,感觉计算机编程很难,是一个跨不过的坎,特别是利用相应的算法解决某个问题,排序,二叉树,红黑树,哈希算法,KMP模式匹配,一些列问题,毫无头绪,现在想想确实只有当你遇到实际问题域模型的时候自然而然就会驱动你去寻找一种解决方案,首先你先以你自己的方法解决这个问题,而不考虑处在计算机的角度来思考,以我们人类特有的思维能力解决它,然后思考一下这个方案的可行性,比如是否能在一分钟,一个...
分类:
其他好文 时间:
2014-09-14 23:42:02
阅读次数:
222
AVL树是最先发明的自平衡二叉查找树, 其增删查时间复杂度都是 O(logn), 是一种相当高效的数据结构。当面对需要频繁查找又经常增删这种情景时,AVL树就非常的适用。
对比红黑树:
红黑树对于数值随机插入性能更好,这种场景实际更常见,故应用更广泛;
AVL 树对于顺序数据插入更有优势;
红黑树部分平衡,降低了旋转的要求;
AVL 树高度平衡,查询操作更具优势;
AVL 树代码更为简单易实现;...
分类:
其他好文 时间:
2014-09-14 20:45:47
阅读次数:
242