static void toh(int npole startpole goalpole tempif ( = return/base case toh( - starttempgoal)/recursive calln- rings move(startgoal)/move bottom disk to goal toh( - tempgoalstart)/recursive calln- rings those who are unfamiliar with recursion might find it hard to accept that it is used primarily as tool for simplifying the design and description of algorithms recursive algorithm usually does not yield the most efficient computer program for solving the problem because recursion involves function callswhich are typically more expensive than other alternatives such as while loop howeverthe recursive approach usually provides an algorithm that is reasonably efficient in the sense discussed in (but not alwayssee exercise if necessarythe clearrecursive solution can later be modified to yield faster implementationas described in section many data structures are naturally recursivein that they can be defined as being made up of self-similar parts tree structures are an example of this thusthe algorithms to manipulate such data structures are often presented recursively many searching and sorting algorithms are based on strategy of divide and conquer that isa solution is found by breaking the problem into smaller (similarsubproblemssolving the subproblemsthen combining the subproblem solutions to form the solution to the original problem this process is often implemented using recursion thusrecursion plays an important role throughout this bookand many more examples of recursive functions will be given mathematical proof techniques solving any problem has two distinct partsthe investigation and the argument students are too used to seeing only the argument in their textbooks and lectures but to be successful in school (and in life after school)one needs to be good at bothand to understand the differences between these two phases of the process to solve the problemyou must investigate successfully that means engaging the problemand working through until you find solution thento give the answer to your client (whether that "clientbe your instructor when writing answers on homework assignment or examor written report to your boss)you need to be able to make the argument in way that gets the solution across clearly and succinctly the argument phase involves good technical writing skills -the ability to make clearlogical argument being conversant with standard proof techniques can help you in this process knowing how to write good proof helps in many ways firstit clarifies your