25 struct node *llink, *rlink;
33 int (*compar)(
const void *,
const void *))
41 while (*rootp !=
NULL)
45 if ((r = (*compar)(vkey, (*rootp)->key)) == 0)
53 q = malloc (
sizeof(
node_t));
58 q->llink = q->rlink =
NULL;
67tfind (
const void *vkey,
void *
const *vrootp,
68 int (*compar)(
const void *,
const void *))
75 while (*rootp !=
NULL)
79 if ((r = (*compar)(vkey, (*rootp)->key)) == 0)
93 int (*compar)(
const void *,
const void *))
99 if ((rootp ==
NULL) || ((p = *rootp) ==
NULL) )
102 while ((cmp = (*compar)(vkey, (*rootp)->key)) != 0)
112 if ((q = (*rootp)->llink) ==
NULL)
116 if (r->llink ==
NULL)
123 for (q = r->llink; q->llink !=
NULL; q = r->llink)
126 q->llink = (*rootp)->llink;
127 q->rlink = (*rootp)->rlink;
void * tfind(const void *vkey, void *const *vrootp, int(*compar)(const void *, const void *))
void * tdelete(const void *__restrict vkey, void **__restrict vrootp, int(*compar)(const void *, const void *))
void * tsearch(const void *vkey, void **vrootp, int(*compar)(const void *, const void *))
additional automatic macros for MHD_config.h