📄 myrbtree.h
字号:
/*
*
*myrbtree.h 红黑树 diablo
*
*/
#ifndef __MYRBTREE_H__
#define __MYRBTREE_H__
#include "mymempool.h"
/*
*
*1 表示 key1 比 key2 大
*0 表示 key1 比 key2 小
*
*/
typedef int (*myrbtree_compare)(void * key1, void * key2);
typedef struct __handle_myrbtree
{
int diablo_is_fool;
}handle_myrbtree;
typedef handle_myrbtree * HMYRBTREE;
typedef struct __handle_myrbtree_iter
{
int diablo_is_fool;
}handle_myrbtree_iter;
typedef handle_myrbtree_iter * HMYRBTREE_ITER;
/*
*
*创建rb树
*
*/
extern HMYRBTREE MyRBTreeConstruct(HMYMEMPOOL hm, myrbtree_compare compare);
/*
*
*销毁rb树
*
*/
extern void MyRBTreeDestruct(HMYRBTREE htree);
/*
*
*删除所有节点
*
*/
extern void MyRBTreeClear(HMYRBTREE htree);
/*
*
*往rb树中插入一个节点
*
*/
extern HMYRBTREE_ITER MyRBTreeInsertEqual(HMYRBTREE htree, void * key, void * userdata);
/*
*
*往rb树中插入一个节点
*
*/
extern HMYRBTREE_ITER MyRBTreeInsertUnique(HMYRBTREE htree, void * key, void * userdata);
/*
*
*从rb树中删除一个节点
*
*/
extern void MyRBTreeDelIter(HMYRBTREE htree, HMYRBTREE_ITER iter, void ** key, void ** data);
/*
*
*根据键值删除一个节点
*成功删除返回0, 否则返回-1
*
*/
extern int MyRBTreeDelKey(HMYRBTREE htree, void * key, void ** key_ret, void ** data_ret);
/*
*
*获取节点的用户数据
*
*/
extern void * MyRBTreeGetIterData(HMYRBTREE_ITER iter);
/*
*
*获取节点的键
*
*/
extern void * MyRBTreeGetIterKey(HMYRBTREE_ITER iter);
/*
*
*查找节点
*
*/
extern HMYRBTREE_ITER MyRBTreeSearch(HMYRBTREE htree, void * key);
/*
*
*计算最大层数
*
*/
extern int MyRBTreeLayer(HMYRBTREE htree, int bmax);
/*
*
*"获取第一个节点"
*
*/
extern HMYRBTREE_ITER MyRBTreeBegin(HMYRBTREE htree);
/*
*
*"获取最后一个节点"
*
*/
extern HMYRBTREE_ITER MyRBTreeEnd(HMYRBTREE htree);
/*
*
*检查红黑树是否合法
*
*/
extern int MyRBTreeExamin(HMYRBTREE htree);
/*
*
*获取个数
*
*/
extern int MyRBTreeGetRealCount(HMYRBTREE htree);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -