21 lines
298 B
C
21 lines
298 B
C
|
#include <search.h>
|
||
|
#include "tsearch.h"
|
||
|
|
||
|
void *tfind(const void *key, void *const *rootp,
|
||
|
int(*cmp)(const void *, const void *))
|
||
|
{
|
||
|
if (!rootp)
|
||
|
return 0;
|
||
|
|
||
|
struct node *n = *rootp;
|
||
|
for (;;) {
|
||
|
if (!n)
|
||
|
break;
|
||
|
int c = cmp(key, n->key);
|
||
|
if (!c)
|
||
|
break;
|
||
|
n = n->a[c>0];
|
||
|
}
|
||
|
return n;
|
||
|
}
|