0% found this document useful (0 votes)
47 views

Recursion

Uploaded by

Andrea Catalan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views

Recursion

Uploaded by

Andrea Catalan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Chapter 6

Recursion
Recursion

 Recursion is a repetitive process in which an


algorithm calls itself.
Figure 6-1: The Iterative Factorial Algorithm Definition.

Algorithm iterativeFactorial (n)


1. Set i to 1
2. Set factN to 1
3. Loop (i <= n)
1. Set factN to factN * i
2. increment i
4. End loop
5. Return factN

Note: See implementation in C++ in the attached file.


Figure 6-2: The Recursive Factorial Algorithm Definition

Algorithm recursiveFactorial (n)


1. If (n equals 0)
1. Return 1
2. Else
1. Return (n * recursiveFactorial (n – 1)
3. End if

Note: See implementation in C++ in the attached file (recursiveFactorial.cpp).


Figure 6-3: The decomposition of Factorial(3) recursively.
Figure 6-4: A diagram tracing the recursion and the parameters for each individual call.
Figure 6-5: Getting the power of a number using recursion.

Note: See implementation in C++ in the attached file (power_recursion.cpp).


Figure 6-6: Function calls (showing application in stacks).
 The succeeding slides will be left as assignment.
Figure 6-7
Figure 6-8
Figure 6-9
Towers of Hanoi

 Rules
1. Only one disk could be move at a time.
2. A larger disk must never be stacked above a smaller
one.
3. A one and only one auxiliary needle could used for
the intermediate storage of disks.
Figure 6-10
Figure 6-11
Figure 6-12, Part I
Figure 6-12 Part II
Figure 6-13

Calls: Output:

Towers (3, A, C, B)
Towers (2, A, B, C)
Towers (1, A, C, B)
Step 1: Move from A to C
Step 2: Move from A to B
Towers (1, C, B, A)
Step 3: Move from C to B
Step 4: Move from A to C
Towers (2, B, C, A)
Towers (1, B, A, C)
Step 5: Move from B to A
Step 6: Move from B to C
Towers (1, A, C, B)
Step 7: Move from A to C
Practice Sets
Exercises #1
Algorithm fun1(x <integer>)
1. if (x<5)
1. return (3 * x)
2. else
1. return (2 * fun1(x-5)+ 7)
3. end if
end fun1
What would be returned if fun1 is called?
a. fun1 (4)?
b. fun1 (10)?
c. fun1 (12)?
Practice Sets
Exercises #3
Algorithm fun3(x <integer>, y <integer>)
1. if (x>y)
1. return -1
2. elseif (x equal y)
1. Return 1
3. else
1. return (x * fun3(x+1,y))
4. end if
end fun1

What would be returned if fun3 is called as


a. fun3 (10,4)?
b. fun3 (4,3)?
c. Fun3(4,7)?
d. fun3 (0,0)?
Figure 6-14
Figure 6-15
Figure 6-16
Figure 6-17

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy