首页 > 编程语言 > 详细

算法与数据结构之树的总结

时间:2016-02-20 13:10:31      阅读:221      评论:0      收藏:0      [点我收藏+]

       B树:二叉树,每个结点只存储一个关键字,等于则命中,小于走左结点,大于

走右结点;

       B-树:多路搜索树,每个结点存储M/2到M个关键字,非叶子结点存储指向关键

字范围的子结点;

       所有关键字在整颗树中出现,且只出现一次,非叶子结点可以命中;

       B+树:在B-树基础上,为叶子结点增加链表指针,所有关键字都在叶子结点

中出现,非叶子结点作为叶子结点的索引;B+树总是到叶子结点才命中;

       B*树:在B+树基础上,为非叶子结点也增加链表指针,将结点的最低利用率

从1/2提高到2/3;

 

B树:

B树就是二叉搜索树,BST,但是,这个不能保证平衡性

 

AVL树:

AVL树就是平衡二叉树,是在二叉搜索树也就是B树的基础上,加了平衡的特性(也就是当高度之差大于1的时候,旋转),形成了AVL树

 

红黑树:

Red-Black Tree,红黑树,最主要的就是五个性质,当不满足性质的时候,则需要进行旋转

1、每个节点,要么是红要么是黑

2、根节点是黑的

3、每个叶节点,即空节点时黑的

4、如果一个节点时红的,那么他两个儿子都是黑的

5、对每一个节点,从该节点到其子孙节点的所有路径上包含相同数目的黑节点(这个是最重要的性质,这个性质和第一性质,可以推断出,最长的树,比最短的树,多一半的结点,这样就几乎保持了树的平衡性)

 

Treap树:

树堆,

treap的结点排列成让关键字遵循二叉查找树性质,并且优先级遵循最小堆顺序性质:
1.如果v是u的左孩子,则key[v] < key[u].
2.如果v是u的右孩子,则key[v] > key[u].
3.如果v是u的孩子,则priority[v] > priority[u].

 

Trie树:

字典树,节省空间,复用

 

splay树:

伸展树,搜狗拼音,常使用的字就会出现在最上面,二八原则,百分之80的人只使用百分之20的资源。

 

算法与数据结构之树的总结

原文:http://www.cnblogs.com/Study02/p/5203037.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!