mirror of
https://github.com/fluencelabs/musl
synced 2025-04-25 07:12:15 +00:00
search: add tdestroy (gnu extension)
This commit is contained in:
parent
b47fdcdef8
commit
d197d6421c
@ -38,6 +38,8 @@ struct qelem {
|
|||||||
struct qelem *q_forw, *q_back;
|
struct qelem *q_forw, *q_back;
|
||||||
char q_data[1];
|
char q_data[1];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void tdestroy(void *, void (*)(void *));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
21
src/search/tdestroy.c
Normal file
21
src/search/tdestroy.c
Normal file
@ -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);
|
||||||
|
freekey(r->key);
|
||||||
|
free(r);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user