Open In App

C Program to Traverse an Array in Reverse

Last Updated : 26 Aug, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

Write a C program to traverse a given array in reverse order that contains N elements.

Examples

Input: arr[] = {2, -1, 5, 6, 0, -3}
Output: -3 0 6 5 -1 2

Input: arr[] = {4, 0, -2, -9, -7, 1}
Output: 1 -7 -9 -2 0 4

Different Ways to Traverse an Array in Reverse Order in C

We can traverse/print the array in the reverse direction using the following different methods in C:

1. Using a Loop

The most straightforward method to traverse an array in reverse is by using a loop. This involves iterating from the last index (N - 1) to the first index (0).

C Program to Traverse an Array in Reverse Order Using a Loop

C
// C Program to Traverse an Array in Reverse Order Using a Loop
#include <stdio.h>

int main() {
    int arr[] = {2, -1, 5, 6, 0, -3};
    int N = sizeof(arr) / sizeof(arr[0]);

    // Loop that goes from N - 1 to 0
    for (int i = N - 1; i >= 0; i--)
    {
        printf("%d ", arr[i]);
    }

    return 0;
}

Output
-3 0 6 5 -1 2 

Time Complexity: O(N)
Auxiliary Space: O(1)

2. Using Recursion

Recursion can also be used to traverse an array in reverse order. It is less efficient than looping due to the overhead of function calls and additional memory usage.

Below is the approach to use recursion to traverse the array in revese:

  • Define a recursive function that takes the array and the current index as arguments.
  • The base case is when all elements are traversed.
  • Recursively call the function for the next element until the first is reached.
  • Print the current element after the recursive call.

C Program to Traverse an Array in Reverse Order Using Recursion

C
// C Program to Traverse an Array in Reverse Order Using Recursion
#include <stdio.h>

void traverseReverseRecursive(int arr[], int N) {
    if (N <= 0) {
        return;
    }

    // Print the current element after recursive call
    printf("%d ", arr[N - 1]);
    traverseReverseRecursive(arr, N - 1);
}

int main() {
    int arr[] = {2, -1, 5, 6, 0, -3};
    int N = sizeof(arr) / sizeof(arr[0]);

    // Traverse and print the array in reverse order using recursion
    traverseReverseRecursive(arr, N);

    return 0;
}

Output
-3 0 6 5 -1 2 

Time Complexity: O(N)
Auxiliary Space: O(N), due to the recursive stack usage.



Next Article

Similar Reads