1#define _GNU_SOURCE 2#include <stdlib.h> 3#include <search.h> 4 5struct node { 6 void *key; 7 struct node *left; 8 struct node *right; 9}; 10 11void tdestroy(void *root, void (*freekey)(void *)) 12{ 13 struct node *r = root; 14 15 if (r == 0) 16 return; 17 tdestroy(r->left, freekey); 18 tdestroy(r->right, freekey); 19 if (freekey) freekey(r->key); 20 free(r); 21} 22