资源简介
代码片段和文件信息
/**
* 根据Linux Kernel定义的红黑树(Red Black Tree)
*
* @author skywang
* @date 2013/11/18
*/
#include
#include
#include “rbtree.h“
#define CHECK_INSERT 1 // “插入“动作的检测开关(0,关闭;1,打开)
#define CHECK_DELETE 1 // “删除“动作的检测开关(0,关闭;1,打开)
#define LENGTH(a) ( (sizeof(a)) / (sizeof(a[0])) )
typedef int Type;
struct my_node {
struct rb_node rb_node; // 红黑树节点
Type key; // 键值
// ... 用户自定义的数据
};
/*
* 查找“红黑树“中键值为key的节点。没找到的话,返回NULL。
*/
struct my_node *my_search(struct rb_root *root Type key)
{
struct rb_node *rbnode = root->rb_node;
while (rbnode != NULL)
{
struct my_node *mynode = container_of(rbnode struct my_node rb_node);
if (key < mynode->key)
rbnode = rbnode->rb_left;
else if (key > mynode->key)
rbnode = rbnode->rb_right;
else
return mynode;
}
return NULL;
}
/*
* 将key插入到红黑树中。插入成功,返回0;失败返回-1。
*/
int my_i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-04-12 18:42 rbtree\
文件 166 2016-03-29 16:16 rbtree\Makefile
文件 23804 2016-04-07 13:51 rbtree\rbtree-tst
文件 3849 2016-04-06 22:06 rbtree\rbtree-tst.c
文件 9376 2016-04-07 13:51 rbtree\rbtree-tst.o
文件 12629 2016-04-07 11:45 rbtree\rbtree.c
文件 7091 2016-04-12 18:42 rbtree\rbtree.h
文件 13208 2016-04-07 13:51 rbtree\rbtree.o
- 上一篇:C 程序设计语言(第2版).pdf
- 下一篇:高级冒泡排序高级(c语言)
评论
共有 条评论