关于树的总结从二叉树->二叉搜索树->平衡二叉树->红黑树->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树等等众多的树。感觉心好累,让我静静先~还是遇到实际的应用场景,需要用啥再研究吧~


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

【数据结构之二叉树】(一)B树、B-树、B+树、B*树介绍,和B+树更适合做文件索引的原因

今天看数据库,书中提到:由于索引是采用 B 树结构存储的,所以对应的索引项并不会被删除,经过一段时间的增删改操作后,数据库中就会出现大量的存储碎片,这和磁盘碎片、内存碎片产生原理是类似的,这些存储碎片...
  • cangchen
  • cangchen
  • 2015年04月01日 23:29
  • 3694

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树
  • h3243212
  • h3243212
  • 2016年10月14日 22:58
  • 1599

二叉树,B树之类持续更新

二叉树二叉树嘛… 就是每个结点最多有两个子树,二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^(i-1)个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,度为0的点数...
  • xiaoshaguaai
  • xiaoshaguaai
  • 2016年09月15日 22:19
  • 584

二叉排序树(B树)和平衡树(AVL树)

     二叉排序树,也称B树,是查找算法中比较常提到的一种数据结构,本文介绍其基本概念和查找过程,并分析其查找效率,进而引出了平衡树(AVL树)的概念。 B树的结构   B树即为...
  • bjtu_dubing
  • bjtu_dubing
  • 2015年12月15日 15:35
  • 882

B树、B+树的区别

一、B树 1、B树的定义 B树是一种平衡的多分树,通常我们说m阶的B树,它必须满足如下条件: (1)每个结点至多有m个子结点; (2)除根结点和叶结点外,其它每个结...
  • yangshuangtao
  • yangshuangtao
  • 2015年09月27日 14:51
  • 3477

二叉查找树,B树,B+树,B*树

原文: http://www.cnblogs.com/oldhorse/archive/2009/11/16/1604009.html
  • chj90220
  • chj90220
  • 2014年06月13日 15:20
  • 1138

二叉查找树、平衡二叉树、红黑树、B-/B+树性能对比

前言:BST、AVL、RBT、B-tree都是动态结构,查找时间基本都在O(longN)数量级上。下面做出详细对比。1. 二叉查找树 (Binary Search Tree)BST 的操作代价分析:...
  • z702143700
  • z702143700
  • 2015年10月12日 20:43
  • 5295

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树
  • h3243212
  • h3243212
  • 2016年10月14日 22:58
  • 1599

B树和二叉排序树(如红黑树)、B树和B+树的区别

B树是为了提高磁盘或外部存储设备查找效率而产生的一种多路平衡查找树。 B+树为B树的变形结构,用于大多数数据库或文件系统的存储而设计。 B树相对于红黑树的区别 在大规模数据存储的时候,红...
  • susidian
  • susidian
  • 2016年02月26日 13:22
  • 4710

平衡二叉树 之 红黑树

Red-Black Tree (  RBT)也是一种自平衡二叉树,其统计性能要好于 AVL树 。它是在1972年由 鲁道夫·贝尔 发明的,它现代的名字是在 Leo J. Guibas 和 Robert...
  • whucyl
  • whucyl
  • 2013年12月11日 14:36
  • 13085
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于树的总结从二叉树->二叉搜索树->平衡二叉树->红黑树->B树与B+树
举报原因:
原因补充:

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