aboutsummaryrefslogtreecommitdiffstats
path: root/inc/sptree.h
blob: baec7e5c10a71b1ada3d8ab564f8fd746ac81ba7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#ifndef   __SPLAY_TREE__
#define   __SPLAY_TREE__

#include "utility.h"

typedef ctl_cmp_func ctl_spt_cmp;

pvoid ctl_sptree_initX(ppvoid sp, uint k_size, uint v_size, ctl_spt_cmp f);
pvoid ctl_sptree_freeX(ppvoid sp);

int  ctl_sptree_isEmptyX   (ppcvoid sp); 

uint ctl_sptree_getKeySizeX(ppcvoid sp);
uint ctl_sptree_getValSizeX(ppcvoid sp);

pvoid ctl_sptree_findX  (ppvoid sp, pcvoid key);
pvoid ctl_sptree_addX   (ppvoid sp, pcvoid key, pvoid val);
void  ctl_sptree_delX   (ppvoid sp, pcvoid key);
pvoid ctl_sptree_updateX(ppvoid sp, pcvoid key, pvoid val);

void  ctl_sptree_splitX(ppvoid sp, pcvoid key, ppvoid r, ppvoid l);
pvoid ctl_sptree_mergeX(ppvoid sp1, ppvoid sp2);

void ctl_sptree_clearX(ppvoid sp);
//void ctl_sptree_copyX (ppvoid sp, ppvoid sp2);

#define ctl_sptree_init(A,B,C,D) ctl_sptree_initX(ppVoid(A),B,C,(ctl_spt_cmp)D)
#define ctl_sptree_free(A)       ctl_sptree_freeX(ppVoid(A))

#define ctl_sptree_isEmpty(A)    ctl_sptree_isEmptyX   (ppcVoid(A))
#define ctl_sptree_getKeySize(A) ctl_sptree_getKeySizeX(ppcVoid(A))
#define ctl_sptree_getValSize(A) ctl_sptree_getValSizeX(ppcVoid(A))

#define ctl_sptree_find(A,B)     ctl_sptree_findX  (ppVoid(A),pcVoid(B))
#define ctl_sptree_add(A,B,C)    ctl_sptree_addX   (ppVoid(A),pcVoid(B),pVoid(C))
#define ctl_sptree_del(A,B)      ctl_sptree_delX   (ppVoid(A),pcVoid(B))
#define ctl_sptree_update(A,B,C) ctl_sptree_updateX(ppVoid(A),pcVoid(B),pvoid(C))

#define ctl_sptree_split(A,B,C,D) ctl_sptree_splitX(ppVoid(A),pcVoid(B),\
                                                    ppVoid(C),pcVoid(D))
#define ctl_sptree_merge(A,B)     ctl_sptree_mergeX(ppVoid(A),ppVoid(B))

#define ctl_sptree_clear(A)  ctl_sptree_clearX(ppVoid(A))
//#define ctl_sptree_copy(A,B) ctl_sptree_copyX (ppVoid(A),ppVoid(B))

#endif /* __SPLAY_TREE__ */