• 大小: 0.02M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-02-21
  • 语言: C/C++
  • 标签: rbtree  

资源简介


资源截图

代码片段和文件信息

/**
* 根据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

评论

共有 条评论

相关资源