关于树的总结从二叉树->二叉搜索树->平衡二叉树->红黑树->B树与B+树

原创 2015年07月10日 23:01:11

二叉树的定义与性质,包括各种操作的源代码在本博客的的此处:二叉树

二叉搜索树(Binary Search Tree)的定义性质以及源码实现在本博客此处:二叉搜索树

平衡二叉树(AVL树),是一棵完全二叉树(PS:关于满二叉树与完全二叉树可以在堆排序中看到定义),其性质以及源代码的实现在本博客此处:平衡二叉树

红黑树,是花时间最久理解的一个东西,只理解了其中的原理,其应用最经典的及时本博客前面讲的Apache与Nginx的区别里面提到的epoll,epoll就是采用红黑树的思想实现的,这里稍微提下红黑树用在epoll的什么地方。

epoll在被内核初始化时(操作系统启动),同时会开辟出epoll自己的内核高速cache区,用于安置每一个我们想监控的socket,这些socket会以红黑树的形式保存在内核cache里,以支持快速的查找、插入、删除。这个内核高速cache区,就是建立连续的物理内存页,然后在之上建立slab层,简单的说,就是物理上分配好你想要的size的内存对象,每次使用时都是使用空闲的已分配好的对象。

关于红黑树的定义及其插入删除操作在本博客此处:红黑树

B树与B+树,已经不属于二叉树的范围,一个根可以有多个分支,这些主要用在数据库(如Oracle的数据库采用B+树实现)与文件系统(如ext2,可以看看下图ext2的布局)的实现。关于B树与B+树的一些理解在本博客此处:B与B+树


以上只是众多树种的几种,其实还有经典的最优二叉树(也就是在信息论里面曾经提到过的霍夫曼编码,也叫霍夫曼树)主要用于数据编码压缩。

还有B*树、LSM树、KD树、vp、R树、R*树、R+树、X树、M树、线段树、希尔伯特R树、优先R树等等众多的树。感觉心好累,让我静静先~还是遇到实际的应用场景,需要用啥再研究吧~


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

深入理解Activity启动流程(一)–Activity启动的概要流程

本文转自http://www.cloudchou.com/android/post-788.html 概述 Android中启动某个Activity,将先启动Activity所在的应用。应用启动时...

二叉查找树查找指定排名元素的算法

问题如下:1.查找在二叉查找树中按大小排名为k的节点(如果元素x排名为k,则有k个元素排在x的前面,排名以0为起点),以升序排序                      2.给出指定键值,返回其在...

数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)

BST树        即二叉搜索树:        1.所有非叶子结点至多拥有两个儿子(Left和Right);        2.所有结点存储一个关键字;        3...

数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)

BST树        即二叉搜索树:        1.所有非叶子结点至多拥有两个儿子(Left和Right);        2.所有结点存储一个关键字;        3...

数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)

BST树        即二叉搜索树:        1.所有非叶子结点至多拥有两个儿子(Left和Right);        2.所有结点存储一个关键字;        3...

数据结构中常见的树(二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)

BST树        即二叉搜索树:        1.所有非叶子结点至多拥有两个儿子(Left和Right);        2.所有结点存储一个关键字;        3...

数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)

数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树) BST树       即二叉搜索树:    ...

数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)

数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树) 分类: 数据结构2014-09-16 12:07 1181人阅读 评论(0) 收藏 举报 ...

二叉查找树-平衡二叉树-红黑树-B树的深度对比分析

我们这个专题介绍的动态查找树主要有: 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)。这四种树都具备下面几个优势: (1) 都是动态结构。在删除,插入...
  • hzx5212
  • hzx5212
  • 2013年09月29日 09:43
  • 1065

平衡二叉树-红黑树的实现

  • 2017年05月12日 21:30
  • 20KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于树的总结从二叉树->二叉搜索树->平衡二叉树->红黑树->B树与B+树
举报原因:
原因补充:

(最多只允许输入30个字)