Exemplo n.º 1
0
void _bin_tree_dump (TreeNode *n, TreeNode *sent, FILE *file, write_func_t f, void *data, BinTreeType type)
{
	if (n != sent)
	{
		_bin_tree_dump (tree_node_get_left (n), sent, file, f, data, type);

#if defined USE_JUMP_TABLE
		action[type](n, file, f, data);
#else
		switch (type)
		{
			case BIN_TREE:
				tree_node_dump (n, file, f, data);
				break;
			case RB_TREE:
				rb_tree_node_dump (n, file, f, data);
				break;
			default:
				fprintf (stderr, "oops! not such tree\n");
				break;
		}
#endif /* USE_JUMP_TABLE */
		_bin_tree_dump (tree_node_get_right (n), sent, file, f, data, type);
	}
}
Exemplo n.º 2
0
void tree_node_dump(struct tree_node * tn, unsigned level)
{
    unsigned i;

    if (tn == NULL) {
        return;
    }

    for (i = 0; i < level; i++) { putchar(' '); }

    tree_node_dump_below(tn);

    printf(" <- %s\n", tn->head);

    for (i = 0; i < tn->node_count; i++) {
        tree_node_dump(tn->nodes[i], level + 1);
    }

    return;
}