listing the fact(recursive function compute ndef factn )assert > "factorial not defined for negative values if return else return fact( recursive call trees figure used boxes to represent function invocations and to illustrate the flow of execution for two recursive functions the specific placement of the boxes illustrated the different results that were achieved depending on the location of the recursive call within the function this type of illustration can be very helpful to visualize the flow of execution within and between various functionsbut it' not as useful in developing and understanding recursive functions when developing or evaluating recursive functionwe typically use recursive call tree such as the one for the factorial function illustrated in figure the diagram consists of small boxes and directed edges between the boxes each box represents function call and is labeled with the name of the function and the actual arguments passed to the function when it was invoked the directed edges between the boxes indicate the flow of execution the solid edges indicate the function from which call originated for examplein figure we see the call to fact( was made from the main(function while the call to fact( was made during the execution of fact( the dashed edges indicate function returns and are labeled with the return value if value is returned to the caller main( fact( fact( fact( fact( fact( figure recursive call tree for fact(