2015-04-05 20:27:02 +02:00
|
|
|
|
|
|
|
#include "strheap.h"
|
|
|
|
|
|
|
|
|
|
|
|
static int cmp(const void *v1,const void*v2)
|
|
|
|
{
|
2015-10-18 09:49:14 +02:00
|
|
|
return ((struct cw_strlist_elem *)v1)->id - ((struct cw_strlist_elem *)v2)->id;
|
2015-04-05 20:27:02 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
static void del(void* d)
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
cw_strheap_t cw_strheap_create()
|
|
|
|
{
|
2015-04-21 08:24:59 +02:00
|
|
|
return mavl_create(cmp,del);
|
2015-04-05 20:27:02 +02:00
|
|
|
}
|
|
|
|
|
2015-10-18 09:49:14 +02:00
|
|
|
const char * cw_strheap_add(cw_strheap_t t, struct cw_strlist_elem *s)
|
2015-04-05 20:27:02 +02:00
|
|
|
{
|
2015-04-21 08:24:59 +02:00
|
|
|
mavl_del(t,s);
|
|
|
|
return mavl_add(t,s);
|
2015-04-05 20:27:02 +02:00
|
|
|
}
|
|
|
|
|
2015-10-18 09:49:14 +02:00
|
|
|
int cw_strheap_register_strings(cw_strheap_t h, struct cw_strlist_elem *s)
|
2015-04-05 20:27:02 +02:00
|
|
|
{
|
|
|
|
int n=0;
|
2015-04-21 08:24:59 +02:00
|
|
|
while ( s->id!=CW_STR_STOP){
|
2015-04-05 20:27:02 +02:00
|
|
|
cw_strheap_add(h,s);
|
|
|
|
s++;
|
|
|
|
n++;
|
|
|
|
}
|
|
|
|
cw_strheap_add(h,s);
|
|
|
|
return n+1;
|
|
|
|
}
|
|
|
|
|