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__ */
|