Aug 082012
 

Write a recursive function which will print an array in forward and backward order (depending on a parameter). The signature of the function should be

/*     If the array is 1 2 3 4 5, then Output should be
 *     1 2 3 4 5 - if (forward == true)
 *     5 4 3 2 1 - if (forward == false)
 */
void printArray(int * arr, int n, bool forward);


Solution:

Before reading this post, learn about recursion, how recursion happens internally and Head & Tail recursion.

Code:

    void printArray(int * arr, int n, bool forward)
    {
        if(n<=0)
            return;
        if(forward)
        {
            printf("%d ", arr[0]);
            printArray(arr+1, n-1, forward);
        }
        else
        {
            printf("%d ", arr[n-1]);
            printArray(arr, n-1, forward);
        }
    }

 

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)