| Index: fusl/src/search/tdestroy.c
|
| diff --git a/fusl/src/search/tdestroy.c b/fusl/src/search/tdestroy.c
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5f9e197dcd1ea57869a0aa74f3c57d010ec163c6
|
| --- /dev/null
|
| +++ b/fusl/src/search/tdestroy.c
|
| @@ -0,0 +1,21 @@
|
| +#define _GNU_SOURCE
|
| +#include <stdlib.h>
|
| +#include <search.h>
|
| +
|
| +struct node {
|
| + void *key;
|
| + struct node *left;
|
| + struct node *right;
|
| +};
|
| +
|
| +void tdestroy(void *root, void (*freekey)(void *))
|
| +{
|
| + struct node *r = root;
|
| +
|
| + if (r == 0)
|
| + return;
|
| + tdestroy(r->left, freekey);
|
| + tdestroy(r->right, freekey);
|
| + if (freekey) freekey(r->key);
|
| + free(r);
|
| +}
|
|
|