Examples of Recursion
Problems
Problem : Write a function that does a post-order traversal of a tree and returns the sum of the data in all the nodes it visits.
Problem : Write a function to find the minimum height of the tree, meaning the path from the root to a NULL child that passes through the fewest nodes.
Problem : Write a function that finds the largest value in a tree containing an unsigned integer as the data.
Problem : Imagine that you were to draw a tree on a piece of paper, cut it out, and then connect it together with wire and string like it was a mobile. In more technical terms, the tree's right and left child would be allowed to swap places, taking with them their children. Write a function to compare two mobile trees to determine their equality. The following are examples of mobile and non-mobile trees.
Problem : CHALLENGE: This question's difficulty represents the power of recursion. How would you write a function to do a pre-order traversal of a tree? Recursively, right? Now, can you think of a way to write a function that would do an iterative traversal of a tree? The catch: you can only use a constant amount of memory (this means you can't have a dynamic array of pointers or a linked list or anything like that), and when the function ends, the tree must be intact (in other words, if you modify the tree, you need to put it back to the way it was). Don't worry if you can't get this one right off the bat. Also, don't attempt to write the code for this function; you'll most likely use a good amount of ink.





