A colorful summary of recursion and backtracking with code examples and notes.

Recursion 🌟

What is Recursion?

Recursion Flow

  1. Base Case: Stops the recursion.
  2. Recursive Case: Calls the function with a smaller problem.
void recursion() {
    // Base case
    if () {
        return;
    }
    recursion();
}
int main() {
    recursion();
}

How Recursion Works

void fun(int i) {
    if (i == 0) return;
    fun(i - 1);
    cout << i << '\\\\n';  // Prints after recursion
}

void fun(int i) {
    if (i == 0) return;
    cout << i << '\\\\n';  // Prints before recursion
    fun(i - 1);
}

Stack Overflow 💥

int fact(int n) {
    return n * fact(n - 1);  // Missing base case: Infinite recursion
}

Backtracking 🔄

What is Backtracking?