資源簡介
代碼片段和文件信息
/**
*?根據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?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語言)
評論
共有 條評論