14 #include <sys/cdefs.h>
15 #define _SEARCH_PRIVATE
24 int (*
compar)(const
void *, const
void *);
27 node_t **
rootp = (node_t **)vrootp;
32 while (*rootp !=
NULL) {
35 if ((r = (*
compar)(vkey, (*rootp)->key)) == 0)
43 q = malloc(
sizeof(node_t));
47 q->key = (
void *)vkey;
48 q->llink = q->rlink =
NULL;
58 int (*
compar)(const
void *, const
void *);
60 node_t **rootp = (node_t **)vrootp;
65 while (*rootp !=
NULL) {
68 if ((r = (*
compar)(vkey, (*rootp)->key)) == 0)
85 tdelete(
const void * __restrict vkey,
void ** __restrict vrootp,
86 int (*
compar)(
const void *,
const void *))
88 node_t **rootp = (node_t **)vrootp;
92 if (rootp ==
NULL || (p = *rootp) ==
NULL)
95 while ((cmp = (*
compar)(vkey, (*rootp)->key)) != 0) {
104 if ((q = (*rootp)->llink) ==
NULL)
106 else if (r !=
NULL) {
107 if (r->llink ==
NULL) {
111 for (q = r->llink; q->llink !=
NULL; q = r->llink)
114 q->llink = (*rootp)->llink;
115 q->rlink = (*rootp)->rlink;
__BEGIN_DECLS void * tdelete(const void *__restrict, void **__restrict, int(*)(const void *, const void *))
int(* compar)(const void *, const void *)
if((r=(*compar)(vkey,(*rootp) ->key))==0)
void * tfind(const void *, void *const *, int(*)(const void *, const void *))
void * tsearch(const void *, void **, int(*)(const void *, const void *))