#define _GNU_SOURCE #include <stdlib.h> #include <search.h> #include "tsearch.h" void tdestroy(void *root, void (*freekey)(void *)) { struct node *r = root; if (r == 0) return; tdestroy(r->a[0], freekey); tdestroy(r->a[1], freekey); if (freekey) freekey((void *)r->key); free(r); }