| | /* Prints the structure of node, which is level levels from the top of the tree. */
static void print_tree_structure (const struct bst_node *node, int level) {
/* You can set the maximum level as high as you like.
Most of the time, you'll want to debug code using small trees,
so that a large level indicates a ``loop'', which is a bug. */
if (level > 16) {
printf ("[...]");
return;
}
if (node == NULL)
return;
printf ("%d", *(int *) node->bst_data);
if (node->bst_link[0] != NULL || node->bst_link[1] != NULL) {
putchar ('(');
print_tree_structure (node->bst_link[0], level + 1);
if (node->bst_link[1] != NULL) {
putchar (',');
print_tree_structure (node->bst_link[1], level + 1);
}
putchar (')');
}
}
|