actube/src/cw/mavltypes.h

35 lines
1.1 KiB
C
Raw Normal View History

2022-07-28 01:34:56 +02:00
/**
* MAVL AVL Tree type
*/
typedef struct mavl * mavl_t;
typedef struct mavliter mavliter_t;
void * mavl_get_ptr ( mavl_t tree, void * search );
/**
* Create a mavl_t object which stores pointers.
* @param cmp a pointer to the compare function
* @param del a pointer to a delete function
* @return The mavl_t object or NULL if an error has occured.
*/
#define mavl_create_ptr(cmp,del)\
mavl_create(cmp,del,sizeof(void*))
int mavl_cmpstr (const void *s1, const void *s2);
#define mavl_create_conststr() mavl_create_ptr(mavl_cmpstr,NULL)
#define mavl_add_str(tree,str) mavl_insert_ptr(tree,str)
#define mavl_get_str(tree,search) ((char *)(mavl_get_ptr(tree,search)))
void * mavl_insert_ptr ( mavl_t tree, const void *ptr );
void *mavl_replace(struct mavl *t,const void *data, int * replaced);
void * mavl_get_ptr(mavl_t tree, void * search);
void * mavliter_get_ptr(mavliter_t *i);
void mavl_merge(mavl_t target, mavl_t source);
void mavl_freeptr(void *ptr);
#define mavliter_get_str(iter) ((char*)(mavliter_get_ptr(iter)));
#define mavl_get_str(tree,search) ((char *)(mavl_get_ptr(tree,search)))