typedef struct g_tree_t g_tree_t; struct g_tree_t { g_node_t *root; }; typedef struct g_node_t g_node_t; struct g_node_t { void *value; g_node_t **children; int n_children; };