Home » Types of Recursion in C

Types of Recursion in C

by Online Tutorials Library

Types of Recursion in C

This section will discuss the different types of recursion in the C programming language. Recursion is the process in which a function calls itself up to n-number of times. If a program allows the user to call a function inside the same function recursively, the procedure is called a recursive call of the function. Furthermore, a recursive function can call itself directly or indirectly in the same program.

Syntax of the Recursion function

In the above syntax, the main() function calls the recursion function only once. After that, the recursion function calls itself up to the defined condition, and if the user doesn’t define the condition, it calls the same function infinite times.

Types of Recursion in C

Different types of the recursion

Following are the types of the recursion in C programming language, as follows:

  1. Direct Recursion
  2. Indirect Recursion
  3. Tail Recursion
  4. No Tail/ Head Recursion
  5. Linear recursion
  6. Tree Recursion

Direct Recursion

When a function calls itself within the same function repeatedly, it is called the direct recursion.

Structure of the direct recursion

In the above structure of the direct recursion, the outer fun() function recursively calls the inner fun() function, and this type of recursion is called the direct recursion.

Let’s write a program to demonstrate the direct recursion in C programming language.

Program2.c

Output

0112358132134   

Indirect Recursion

When a function is mutually called by another function in a circular manner, the function is called an indirect recursion function.

Structure of the indirect recursion

In this structure, there are four functions, fun1(), fun2(), fun3() and fun4(). When the fun1() function is executed, it calls the fun2() for its execution. And then, the fun2() function starts its execution calls the fun3() function. In this way, each function leads to another function to makes their execution circularly. And this type of approach is called indirect recursion.

Let’s write a program to demonstrate the indirect recursion in C programming language.

Program3.c

Output

2  1  4  3  6  5  8  7  10  9  

Tail Recursion

A recursive function is called the tail-recursive if the function makes recursive calling itself, and that recursive call is the last statement executes by the function. After that, there is no function or statement is left to call the recursive function.

Let’s write a program to demonstrate the tail recursion in C programming language.

Program4.c

Output

Number is: 7   Number is: 6   Number is: 5   Number is: 4   Number is: 3   Number is: 2   Number is: 1  

Non-Tail / Head Recursion

A function is called the non-tail or head recursive if a function makes a recursive call itself, the recursive call will be the first statement in the function. It means there should be no statement or operation is called before the recursive calls. Furthermore, the head recursive does not perform any operation at the time of recursive calling. Instead, all operations are done at the return time.

Let’s write a program to demonstrate the Head/Non-Tail recursion in C programming language.

Program5.c

Output

Use of Non-Tail/Head Recursive function   1 2 3 4 5  

Linear Recursion

A function is called the linear recursive if the function makes a single call to itself at each time the function runs and grows linearly in proportion to the size of the problem.

Let’s write a program to demonstrate the linear Recursion in C programming language.

Program6.c

Output

The maximum number is: 35  

Tree Recursion

A function is called the tree recursion, in which the function makes more than one call to itself within the recursive function.

Let’s write a program to demonstrate the tree recursion in C programming language.

Program7.c

Output

Use of Tree Recursion:   The Fibonacci number is: 13  

You may also like