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