红黑树与C实现算法 - RedBlackTree.c
来源:互联网 发布:淘宝客服昵称大全修改 编辑:程序博客网 时间:2024/05/28 16:30
红黑树与C实现算法
cheungmine
本文全部内容摘自互联网,作者根据需要做了修改和补充,最主要的是提供了对set的支持,并且给出完整的测试用例。
红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除,这里的n 是树中元素的数目。
红黑树是一种很有意思的平衡检索树。它的统计性能要好于平衡二叉树(有些书籍根据作者姓名,Adelson-Velskii和Landis,将其称为AVL-树),因此,红黑树在很多地方都有应用。在C++ STL中,很多部分(目前包括set, multiset, map, multimap)应用了红黑树的变体(SGI STL中的红黑树有一些变化,这些修改提供了更好的性能,以及对set操作的支持)。
红黑树的实现代码如下(red_black_tree.h,red_black_tree.c和测试文件rbtree_test.c):
任何人使用此代码必须遵守原作者的协议。
- 红黑树与C实现算法 - RedBlackTree.c
- 红黑树(RedBlackTree)实现
- 红黑树与C实现算法
- 算法导论示例-RedBlackTree
- 红黑树(RedBlackTree),平衡树(BalancedTree),SkipList 的实现
- Dijkstra(迪杰斯特拉)算法分析与实现(C++)
- sha1算法的C实现与应用
- base64编码算法与c语言实现
- base64编码算法与c语言实现
- CRC32算法实现:python与C
- Dijkstra(迪杰斯特拉)算法分析与实现(C/C++)
- 排序算法实现(C/C++)
- java实现CRC16算法与C算法一致
- C语言实现FIFO算法与LRU算法
- 匈牙利算法(C#)实现
- 算法(c++)实现
- C#MD5算法实现
- md5算法C实现
- [Win32汇编]之用字符串填充edit控件
- C语言课程设计具体安排说明
- Linux内核的下载和解压
- Ext - 数组 和 对象(方法) 在继承对象中内存共享问题.
- 提高编程效率的技巧
- 红黑树与C实现算法 - RedBlackTree.c
- 企鹅Sheldon批处理系列之2——指定文件夹下所有文件的字符串替换
- VC++颜色渐变实现的3种方法
- Tomcat、Weblogic及WebSphere使用感悟
- Hide in the shadow
- 多线程
- Ext 3 - Dwr 数据交互 Grid用store : DWRProxy
- 线程同步
- 如何动态修改GroupBox的标题