red-black tree(RB树)是一种平衡二叉树,它主要用于存储或者说索引可排序的键 值对数据。RB树(红黑树)与radix树和hash表都不同。radix树是一种比较适合用于 存储稀疏的数据集而且将用一个大整数进行插入,删除,查找的操作基础。而hash表 并不是以某种排序顺序进行存储,而且必须指定大小和hash函数。
RB树与AVL树很相似,但是比AVL树有更好的插入和删除最坏情况的时间复杂度,以及 O(log n)的最坏查找时间复杂度。
在Linux中有很多地方用到了RD树。anticipatory, deadline, 和CFQ I/O调度都使用 的是RB树进行请求跟踪,还有CD/DVD驱动的包管理也是如此。 高精度计时器(high-resolution timer)使用RB树组织定时请求。 EXT3文件系统也使用RB树来管理目录。 虚拟存储管理系统也是有RB树进行VMAs(Virtual Memory Areas)的管理。 当然还有文件描述符,密码钥匙,“等级令牌桶”调度的网络数据包都是用RB数据进 行组织和管理的。
相关资料:
Linux Weekly News article on red-black trees
http://lwn.net/Articles/184495/
Wikipedia entry on red-black trees
http://en.wikipedia.org/wiki/Red-black_tree