Recursion is technique that breaks a problem into one or more sub parts that are similar to the original problem. A recursive function can be categorized based on

- Weather the function calls it's self or indirectly
- Weather any operation is pending at each recursive call
- The structure of the calling.

**1. Direct recursion**

A function said to be direct recursive if it calls explicitly.

Example:

int fact(int n)

{

if(n==1)

return n;

else

return(n*fact(n-1));

}

**2. Indirect recursion**

A function is said to be indirectly recursive if it contains a call to another function which ultimately calls itself.

Example:

int fun1(int n)

{

if(n==1)

return n;

else

return fun2();

}

int fun2(int x)

{

return fun1(x-1);

}

In the above example the function fun1() calling the fun2() which intern calls the fun1() function.

**3. Tail recursion**

A recursive function is said to be tail recursive if no operations are pending to be performed. When the recursive function returns to it's caller.

Example:

int fact(int n)

{

if(n==1)

return n;

else

return(n*fact(n-1));

**4. Linear recursion**

A recursive function is said to be linear recursive when the pending operations does not make another recursive call to the function.

**5. Tree recursion **

A recursive function is said to be tree recursive when the pending operation makes another call to the function.

## 0 comments:

## Post a Comment

Note: only a member of this blog may post a comment.