Google Add

Search

C, C++ Program to Reverse an Array using Recursion

Write a C, C++ program to reverse an array using recursion. Given an input array, we have to write a code that reverse an array using recursion.

C, C++ Program to Reverse an Array using Recursion


I assume you are familiar with the concept of recursion and the difference between iteration and recursion.  Let's quickly go through the concept of recursion.

In recursion, A function call itself until the base condition is reached.

Reverse a number using recursion

Let's assume user has input following array values.

// Input array

int arr[] = {3,2,1,7,8}

// Reverse of an input array

arr[] = {8,7,1,2,3}

I already discussed how to reverse an array  using iterative approach in my previous post.  In this post, we'll write a code to reverse an array using recursion.

C Program to Reverse an Array using Recursion

#include <stdio.h>

int reverse(int arr[],int start,int end){
 
     int temp;

     // if start is less than end  

     if(start < end){
     
         /* Swap the position of an element. */
         
         temp       = arr[start];
         arr[start] = arr[end];
         arr[end]   = temp;
         
         /*calling itself
          *Incrementing start and decrementing end
          */ 
         reverse(arr, start+1, end-1);
         
     } 
     
     return 0;
}

int main(void) {
 
   // Decare an array
 
   int arr[] = {3,2,1,7,8};
 
   int n = 5;
 
   /* Call reverse method */

   reverse(arr, 0, n-1);
 
   printf("Reverse of an array \n");
 
   for(int i = 0; i < n; i++){
  
        printf("%d ",arr[i]);
   }

   return 0;
}



C++ Program to Reverse an Array using Recursion

#include <iostream>

using namespace std;

int reverse(int arr[], int start, int end) {
    
    int temp;
    
    if(start < end) {
        temp        = arr[start];
        arr[start]  = arr[end];
        arr[end]    = temp;
        
        // recursive function call
        reverse(arr, start+1, end-1);
    }
    
    return 0;
}

int main() {
    
    int n, arr[100], i;
    
    cout << "Enter the size of an array \n";
    cin  >> n;
    
    cout << "Enter an element of an array \n";
    
    for(i = 0; i < n; i++) {
        cin >> arr[i];
    }
    
    reverse(arr, 0, n-1);
    
    cout << "Reverse of an array is \n";
    
    for(i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    
    return 0;
}


Output :

Enter the size of an array 5

Enter an element of an array
 2 3 5 6 7

Reverse of an array is
 7 6 5 3 2


Swap two numbers using third variable.

Swap two numbers using pointer(call by reference).

Swap two numbers without using third variable.


No comments:

Post a Comment