**Problem : **
There are several ways to traverse a tree, that is, to go through each of the
nodes in a tree. You can either start with the root node, then traverse the
two subtrees, or traverse the subtrees, then handle the root node, or traverse
the left subtree, then go through the root node, then traverse the right subtree.
The methods are called pre-order traversal, post-order traversal and infix
traversal respectively. Write a function that prints out the data elements in
a tree by traversing the tree with an infix traversal.

void print_infix (tree_t *t) { /* Base case */ if (t == NULL) return; print_infix (t->left); /* Print out the data element at the current node */ printf(" %d ", t->data); print_infix (t->right); }

**Problem : **
Write a recursive function in the canonical tree-recursion form that will
print out a valid English word when given the following tree as input.
(Hint: Think of the different traversals).

Problem 2

void print_word (tree_t *t) { /* Base case */ if (t == NULL) return; /* Print out the data element at the current node */ printf(" %d ", t->data); print_word (t->right); print_word (t->left); }

**Problem : **
Describe an algorithm for writing a level-order traversal, where all of the
nodes at depth 0 are printed, then depth 1, then depth 2, etc