1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#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; }