1.2.37 · HinglishIntroduction to Programming (Python)

Recursion — call stack visualization, base case, recursive case

1,856 words8 min readRead in English

1.2.37 · Coding › Introduction to Programming (Python)


Recursion KYA hai?


Call stack kaise kaam karta hai

Figure — Recursion — call stack visualization, base case, recursive case

DERIVATION — factorial ko scratch se banana

Hum chahte hain .

Step 1 — Self-similarity dhundho. Notice karo . Yeh step kyun? Kyunki ka product bas times ka product hai — same tarah ki problem, ek size choti. Wahi self-reference hai recursive case.

Step 2 — Dhundho kahan chhota hona ruk jaata hai. le jaata hai ... neeche tak. Definition se . Yeh step kyun? Humein ek aisa input chahiye jiska jawab aur recursion ke bina de sakein. ko koi multiplication nahi chahiye, toh yeh base case hai.

Step 3 — Function mein combine karo.

def fact(n):
    if n == 0:          # base case
        return 1
    return n * fact(n-1)  # recursive case

Common mistakes (Steel-manned)


Recursion vs Iteration (80/20)


Recall Feynman: 12 saal ke bachche ko samjhao

Socho tum ek lambi line mein khade ho aur apni position jaanna chahte ho. Tum aage dekh nahi sakte, toh aage waale ko tap karte ho aur poochte ho "tera number kya hai?" Woh same cheez karta hai, agle ko tap karta hai, aur yeh silsila chalta rehta hai — jab tak bilkul pehla insaan kehta hai "main number 1 hoon!" (yeh base case hai — woh bina kisi se pooche jawab deta hai). Phir answer wapas aata hai: har insaan jo suna usme 1 jodta hai aur peeche waale ko bataata hai. Yehi recursion hai: khud ki ek choti copy se poochho, wait karo, phir apna hissa add karo. "Jawab ka intezaar karne waale log" call stack hain.


Active-recall flashcards

Har recursive function mein kaunse do parts hone chahiye?
Ek base case (recursion rokta hai) aur ek recursive case (khud ko chote input pe call karta hai).
Base case kya hota hai?
Sabse chota input jiska answer directly pata ho, bina aur recursive call ke — yeh recursion ko rokta hai.
Missing/wrong base case crash kyun karta hai?
Recursion kabhi nahi rukta, frames pile ho jaate hain, aur Python maximum recursion depth hit kar leta hai → RecursionError (stack overflow).
Active function calls kaunsa data structure store karta hai, aur woh kaunsa order follow karta hai?
Call stack, jo LIFO (last-in-first-out) hota hai.
fact(3) mein kaunsi call apni value PEHLE return karti hai?
fact(0) — base case — kyunki sabse gehra/last-pushed frame pehle khatam hota hai (LIFO).
Ek recursive run ke do phases kaunse hain?
Winding (frames push karte hue neeche jaana) aur unwinding (frames pop karte hue aur return combine karte hue wapas aana).
Recursive call mein n-1 (ya L[1:]) kyun use karna chahiye?
Base case ki taraf progress karne ke liye; warna problem kabhi nahi chhotaati aur recursion infinite ho jaata hai.
Agar recursive case mein return bhool jaao toh kya hoga?
Sub-call ka result discard ho jaata hai; function computed value ki jagah None return karta hai.
Kya saari recursive calls ek hi local variable n share karti hain?
Nahi — har stack frame ke apne independent locals ka copy hota hai.
Recursion derive karne ke liye use ki gayi factorial ki self-similar definition?
n! = n · (n-1)! jahan 0! = 1.

Connections

Concept Map

has

has

calls self on

shrinks toward

stops

missing base case gives

raises

runs on

Winding pushes

Unwinding pops on

example

recursive case

base case

Recursion

Base case

Recursive case

Smaller input

Infinite recursion

RecursionError stack overflow

Call stack LIFO

Stack frames

factorial n

n * fact(n-1)

fact(0) = 1