How many types of recursion are there in c language?
Recursion in c language is a method where the function calls itself, within or outside the scope. Using Recursion, complicated problems can be divided into smaller parts so that solving them becomes more manageable.
The recursion technique is available in Java, JavaScript, and C++.serves the same purpose.
The type of Recursion in C
• Direct Recursion
• Indirect Recursion.
Direct Recursion
Recursion can call the function n-number of times. In the case of direct Recursion, the function calls itself inside the same position or in the local scope
Direct Recursion problems are the Fibonacci series, a program to print 50 natural numbers.
Indirect Recursion
In the case of Indirect Recursion, a function X calls function Y, and function Y calls any function Z. Under certain conditions, function Z calls function A. In this case, function A is indirectly related to function Z. Indirect Recursion is also known as mutual Recursion, as more than one function runs a program. It is a two-step recursive function call process for making a recursive function call.
Below mentioned are also type of Recursion:
Tail Recursion
No Tail/Head Recursion
Linear Recursion
Tree Recursion
Tail Recursion A function is said to be tail recursion if it calls itself and also calls the last or the previous statement executed in the process.
Head Recursion A function is said to be Head Recursion if it calls itself and also calls the first or the beginning statement executed in the process.
Linear Recursion A function is said to be a linear recursive function if it makes a single call to itself each time the procedure executes itself and grows linearly depending on the size of the problem.
Tree Recursion
Tree Recursion is different from linear Recursion. Rather than making only one call to itself, that function makes more than one recursive call to the process within the recursive function.
Following are the steps to solve the recursive problem in C:
Step 1: Create a function and assign the work a part should do.
Step 2: Select the subproblem and assume that the function already works on the problem. Step 3: Get the answer to the subproblem and use it to resolve the main issue.
Step 4: The 90% of the problem defined is solved.