Java Reference
In-Depth Information
factorial(4)
Step 0: executes factorial(4)
Step 9: return 24
return 4 * factorial(3)
Step 1: executes factorial(3)
Step 8: return 6
return 3 * factorial(2)
Step 2: executes factorial(2)
Step 7: return 2
return 2 * factorial(1)
Step 3: executes factorial(1)
Step 6: return 1
return 1 * factorial(0)
Step 4: executes factorial(0)
Step 5: return 1
return 1
F IGURE 20.2
Invoking factorial(4) spawns recursive calls to factorial .
5
Space required
for factorial(0)
n: 0
Space required
for factorial(1)
n: 1
4
Space required
for factorial(1)
n: 1
Space required
for factorial(2)
n: 2
Space required
for factorial(2)
n: 2
3
Space required
for factorial(2)
n: 2
Space required
for factorial(3)
n: 3
Space required
for factorial(3)
n: 3
Space required
for factorial(3)
n: 3
2
Space required
for factorial(3)
n: 3
Space required
for factorial(4)
n: 4
Space required
for factorial(4)
n: 4
Space required
for factorial(4)
n: 4
Space required
for factorial(4)
n: 4
1
Space required
for factorial(4)
n: 4
6
Space required
for factorial(1)
n: 1
Space required
for factorial(2)
n: 2
Space required
for factorial(2)
n: 2
7
Space required
for factorial(3)
n: 3
Space required
for factorial(3)
n: 3
Space required
for factorial(3)
n: 3
8
Space required
for factorial(4)
n: 4
Space required
for factorial(4)
n: 4
Space required
for factorial(4)
n: 4
Space required
for factorial(4)
n: 4
9
F IGURE 20.3 When factorial(4) is being executed, the factorial method is called recursively, causing stack space
to dynamically change.
 
Search WWH ::




Custom Search