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