---
title: "Define recursion; direct vs indirect"
subject: "Data Structure and Algorithm"
chapter: 5
key: "semester_4/data_structure_and_algorithm:define-recursion-direct-indirect"
source: https://www.bctengineer.com/q/semester_4/data_structure_and_algorithm/define-recursion-direct-indirect
site: BCT Engineering
---

# Define recursion; direct vs indirect

Data Structure and Algorithm · Chapter 5: Recursion

- Asked in: 2069 Bhadra, 2+2 marks
- Video: [Types of Recursion (Part 1) | Direct & Indirect Recursion](https://www.youtube.com/watch?v=t9whckmAEq0) — Neso Academy
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_4/data_structure_and_algorithm/define-recursion-direct-indirect
- Whole chapter: https://www.bctengineer.com/md/semester_4/data_structure_and_algorithm/chapter-5

## Question

Define recursion. What do you mean by direct and indirect recursion? Explain with example.

## Short answer

Recursion is a process where a function calls itself directly or indirectly until a base case. Direct example: sum(n)=n+sum(n-1) with sum(0)=0. Indirect example: isOdd calls isEven, and isEven calls isOdd, forming an A->B->A cycle.

## Answer

**Recursion** is the process in which a function calls itself, directly or indirectly, to solve a problem by reducing it to smaller instances until a base case is reached.

#### Direct recursion
A function calls itself in its own body.
```c
int sum(int n) {
    if (n == 0) return 0;          /* base case */
    return n + sum(n - 1);         /* sum calls sum */
}
```
`sum(3) = 3 + sum(2) = 3 + 2 + sum(1) = 6`. Chain: sum → sum → sum.

#### Indirect recursion
A function calls another function that eventually calls the first one (cycle A → B → A).
```c
int isEven(int n);
int isOdd(int n)  { return n == 0 ? 0 : isEven(n - 1); }
int isEven(int n) { return n == 0 ? 1 : isOdd(n - 1); }
```
`isEven(2)` → `isOdd(1)` → `isEven(0)` → returns 1. Chain: isEven → isOdd → isEven.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What is recursion?
   A. A loop with a counter
   B. Calling main repeatedly
   C. A sorting method
   D. A function calling itself directly or indirectly on smaller instances until a base case
   Answer: D. Smaller instances plus a base case. (Key point: Definition)

2. In sum(n) = n + sum(n-1), what is sum(3)?
   A. 6
   B. 3
   C. 5
   D. 9
   Answer: A. 3 + 2 + 1 + 0 = 6. (Key point: Direct example)

3. In the isEven/isOdd code, what does isEven(2) return?
   A. 0, because n is not 0
   B. 1 (true), via isOdd(1) and isEven(0)
   C. Infinite recursion
   D. 1, via isOdd(0)
   Answer: B. isEven(2) to isOdd(1) to isEven(0), which returns 1. (Key point: Indirect example)

## Related in Data Structure and Algorithm

- [Direct and indirect recursion](https://www.bctengineer.com/question.md?key=semester_4%2Fdata_structure_and_algorithm%3Adirect-indirect-recursion) — Data Structure and Algorithm, chapter 5
- [Recursion; iterative vs recursive choice](https://www.bctengineer.com/question.md?key=semester_4%2Fdata_structure_and_algorithm%3Adefine-recursion-iterative-vs-recursive) — Data Structure and Algorithm, chapter 5
- [Is recursion slow; recursive vs non-recursive](https://www.bctengineer.com/question.md?key=semester_4%2Fdata_structure_and_algorithm%3Arecursion-slow-compare) — Data Structure and Algorithm, chapter 5

## Related in other subjects

- [Degenerate semiconductors; direct vs indirect bandgap](https://www.bctengineer.com/question.md?key=semester_3%2Felectrical_engineering_material%3Adegenerate-direct-indirect) — Electrical Engineering Material, chapter 6
- [Direct versus indirect band gap semiconductors](https://www.bctengineer.com/question.md?key=semester_3%2Felectrical_engineering_material%3Adirect-indirect-bandgap) — Electrical Engineering Material, chapter 6
- [Direct and indirect recombination](https://www.bctengineer.com/question.md?key=semester_3%2Felectrical_engineering_material%3Arecombination-direct-indirect) — Electrical Engineering Material, chapter 6
- [Direct, indirect, deflection and null methods](https://www.bctengineer.com/question.md?key=semester_4%2Finstrumentation_and_measurement%3Afundamental-measurement-methods) — Instrumentation and Measurement, chapter 1
