1 Chapter 1 RECURSION. 2 Chapter 1 Subprogram implementation Recursion Designing Recursive...

78
1 Chapter 1 RECURSION

Transcript of 1 Chapter 1 RECURSION. 2 Chapter 1 Subprogram implementation Recursion Designing Recursive...

Page 1: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

1

Chapter 1

RECURSION

Page 2: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

2

Chapter 1

Subprogram implementation Recursion Designing Recursive Algorithms Towers of Hanoi Backtracking Eight Queens problem

Page 3: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Function implementation

Code segment (static part) Activation record (dynamic part)

Parameters Function result Local variables Return address

3

Page 4: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Function implementation

4

Page 5: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Function implementation#include <iostream.h>int maximum( int x, int y, int z) {

int max = x; if ( y > max ) max = y; if ( z > max ) max = z; return max;

}int main() {

int a, b, c, d1, d2;A1 cout << "Enter three integers: ";A2 cin >> a >> b >> c; A3 d1 = maximum (a, b, c); A4 cout << "Maximum is: " << d1 << endl;A5 d2 = maximum (7, 9, 8); A5 cout << "Maximum is: " << d2 << endl;A7 return 0;}

5

Page 6: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Function implementation

A4 Return Address

Return value

7

9

x

y

8 z

max

d1 = maximum (a, b, c); // a = 7; b = 9; c = 8

int maximum( int x, int y, int z) { int max = x; if ( y > max ) max = y; if ( z > max ) max = z; return max;}

6

Page 7: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Function implementation

A4 Return Address

Return value

7

9

x

y

8 z

7 max

d1 = maximum (a, b, c); // a = 7; b = 9; c = 8

int maximum( int x, int y, int z) { int max = x; if ( y > max ) max = y; if ( z > max ) max = z; return max;}

7

Page 8: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Function implementation

A4 Return Address

Return value

7

9

x

y

8 z

9 max

d1 = maximum (a, b, c); // a = 7; b = 9; c = 8

int maximum( int x, int y, int z) { int max = x; if ( y > max ) max = y; if ( z > max ) max = z; return max;}

8

Page 9: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Function implementation

A4 Return Address

Return value

7

9

x

y

8 z

9 max

d1 = maximum (a, b, c); // a = 7; b = 9; c = 8

int maximum( int x, int y, int z) { int max = x; if ( y > max ) max = y; if ( z > max ) max = z; return max;}

9

Page 10: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Function implementation

A4

9

Return Address

Return value

7

9

x

y

8 z

9 max

d1 = maximum (a, b, c); // a = 7; b = 9; c = 8

int maximum( int x, int y, int z) { int max = x; if ( y > max ) max = y; if ( z > max ) max = z; return max;}

10

Page 11: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Function implementation

11

Page 12: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Function implementation

12

Page 13: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Function implementation

Stack frames: Each vertical column shows the contents of the stack

at a given time There is no difference between two cases:

when the temporary storage areas pushed on the stack come from different functions, and

when the temporary storage areas pushed on the stack come from repeated occurrences of the same function.

13

Page 14: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion

An object contains itself

14

Page 15: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion

15

Page 16: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion

Recursion is the name for the case when: A function invokes itself, or A function invokes a sequence of other

functions, one of which eventually invokes the first function again.

In regard to stack frames for function calls, recursion is no different from any other function call. Stack frames illustrate the storage

requirements for recursion. Separate copies of the variables declared in

the function are created for each recursive call.

16

Page 17: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion

17

Page 18: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion

18

Page 19: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion

19

Page 20: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

20

Recursion In C++, it’s possible for a function to call itself. Functions that

do so are called seft-referential or recursive functions. In some problems, it may be natural to define the problem in

terms of the problem itself. Recursion is useful for problems that can be represented by a

simpler version of the same problem.

  Example: Factorial1! = 1;

2! = 2*1 = 2*1!

3! = 3*2*1=3*2!

…. n! = n*(n-1)!

The factorial function is only defined for positive integers.

n!=1 if n is equal to 1n!=n*(n-1)! if n >1

Page 21: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

21

Example :#include <iostream.h>

#include <iomanip.h>

unsigned long Factorial( unsigned long );

int main(){ for ( int i = 0; i <= 10; i++ ) cout << setw( 2 ) << i << "! = "

<< Factorial( i ) << endl; return 0;}// Recursive definition of function factorialunsigned long Factorial( unsigned long number ){ if (number < 1) // base case return 1; else // recursive case return number * Factorial( number - 1 );}

The output :  0! = 1 1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 6! = 720 7! = 5040 8! = 40320 9! = 36288010! = 3628800

Page 22: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Factorial(3)unsigned long Factorial( unsigned long number ){A1 if (number < 1) // base caseA2 return 1;A3 else // recursive caseA4 return number * Factorial( number - 1 );A5}

22

3A0

3A0

2A4

3A0

2A4

1A4

3A0

2A411

A410

A4

3A0

2A411

A4

3A022

A4

63

A0

Page 23: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

23

Page 24: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion

We must always make sure that the recursion bottoms out: A recursive function must contain at least one non-

recursive branch. The recursive calls must eventually lead to a non-

recursive branch.

Recursion is one way to decompose a task into smaller subtasks. At least one of the subtasks is a smaller example of the same task. The smallest example of the same task has a non-recursive

solution.

Example: The factorial function

n! = n * (n-1)! and 1! = 1

24

Page 25: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

25

Page 26: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion - Print List

26

Page 27: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion - Print List

27

pTemp = pHead;

Page 28: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion - Print List A list is

empty, or consists of an element and a sublist, where

sublistis a list.

28

pHeadpHead

Page 29: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion - Print ListAlgorithm Print(val head<pointer>)

Prints Singly Linked List.

Pre headpoints to the first element of the list needs to be printed.

Post Elements in the list have been printed.

Uses recursive function Print.

A1.if(head= NULL) // stopping case

A1.1.return

A2.write (head->data)

A3.Print(head->link) // recursive case

A4.End Print

29

Page 30: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion - Print List

30

Addr Value

800 6

804 810

810 10

814 820

820 14

824 830

830 20

834 0

Addr Value

100 800 pHead

Create List

Print(pHead)

Page 31: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

31

Addr Value

800 6

804 810

810 10

814 820

820 14

824 830

830 20

834 0

Addr Value

100 800 pHead

200 800 head

204 A0 retAdd

6

output

Page 32: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

32

Addr Value

800 6

804 810

810 10

814 820

820 14

824 830

830 20

834 0

Addr Value

100 800 pHead

200 800 head

204 A0 retAdd

220 810 head

224 A4 retAdd

6 10

output

Page 33: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

33

Addr Value

800 6

804 810

810 10

814 820

820 14

824 830

830 20

834 0

Addr Value

100 800 pHead

200 800 head

204 A0 retAdd

220 810 head

224 A4 retAdd

230 820 head

234 A4 retAdd

6 10 14

output

Page 34: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

34

Addr Value

800 6

804 810

810 10

814 820

820 14

824 830

830 20

834 0

Addr Value

100 800 pHead

200 800 head

204 A0 retAdd

220 810 head

224 A4 retAdd

230 820 head

234 A4 retAdd

240 830 head

244 A4 retAdd

6 10 14 20

output

Page 35: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

35

Addr Value

800 6

804 810

810 10

814 820

820 14

824 830

830 20

834 0

Addr Value

100 800 pHead

200 800 head

204 A0 retAdd

220 810 head

224 A4 retAdd

230 820 head

234 A4 retAdd

240 830 head

244 A4 retAdd

250 0 head

254 A4 retAdd

6 10 14 20

output

Page 36: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

36

Addr Value

800 6

804 810

810 10

814 820

820 14

824 830

830 20

834 0

Addr Value

100 800 pHead

200 800 head

204 A0 retAdd

220 810 head

224 A4 retAdd

230 820 head

234 A4 retAdd

240 830 head

244 A4 retAdd

6 10 14 20

output

Page 37: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

37

Addr Value

800 6

804 810

810 10

814 820

820 14

824 830

830 20

834 0

Addr Value

100 800 pHead

200 800 head

204 A0 retAdd

220 810 head

224 A4 retAdd

230 820 head

234 A4 retAdd

6 10 14 20

output

Page 38: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

38

Addr Value

800 6

804 810

810 10

814 820

820 14

824 830

830 20

834 0

Addr Value

100 800 pHead

200 800 head

204 A0 retAdd

220 810 head

224 A4 retAdd

6 10 14 20

output

Page 39: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

39

Addr Value

800 6

804 810

810 10

814 820

820 14

824 830

830 20

834 0

Addr Value

100 800 pHead

200 800 head

204 A0 retAdd

6 10 14 20

output

Page 40: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

40

Addr Value

800 6

804 810

810 10

814 820

820 14

824 830

830 20

834 0

Addr Value

100 800 pHead6 10 14 20

output

Page 41: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion - Print List

41

Page 42: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Recursion - Print List

42

Page 43: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Designing Recursive Algorithms

43

Page 44: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Designing Recursive Algorithms

44

Page 45: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Designing Recursive Algorithms

45

Page 46: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Designing Recursive Algorithms

46

Page 47: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Designing Recursive Algorithms

47

Page 48: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Designing Recursive Algorithms

48

Page 49: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

49

Page 50: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Designing Recursive Algorithms

50

Page 51: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

51

Page 52: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Designing Recursive Algorithms

Price for recursion: calling a function consumes more time and memory than

adjusting a loop counter. high performance applications (graphic action games,

simulations of nuclear explosions) hardly ever use recursion.

In less demanding applications recursion is an attractive alternative for iteration

(for the right problems!)

52

Page 53: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Designing Recursive Algorithms

If we use iteration, we must be careful not to create an infinite loop by accident:

for(int incr=1; incr!=10;incr+=2) ...

int result = 1;while(result >0){ ... result++;} Oops!Oops!

Oops!Oops!

53

Page 54: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Designing Recursive Algorithms

Similarly, if we use recursion we must be careful not to create an infinite chain of function calls:

int fac(int numb){ return numb * fac(numb-1);}

Or: int fac(int numb){

if (numb<=1) return 1; else return numb * fac(numb+1);}

Oops!Oops!No termination No termination

conditioncondition

Oops!Oops!

54

Page 55: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Towers of Hanoi

Only one disc could be moved at a time A larger disc must never be stacked above a

smaller one One and only one extra needle could be used

for intermediate storage of discs

55

Page 56: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Towers of Hanoi

56

Page 57: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Towers of Hanoi

57

Page 58: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Towers of Hanoi

58

Page 59: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Towers of Hanoi

59

Page 60: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Towers of Hanoi

60

Page 61: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Towers of Hanoi

61

Page 62: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Towers of Hanoi

62

Page 63: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking

63

Page 64: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking

64

Page 65: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

65

Page 66: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

66

Page 67: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

67

Page 68: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

68

Page 69: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

69

Page 70: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problembool Queens::unguarded(int col) const{

int i;bool ok = true; for (i = 0; ok && i < count; i++) ok = !queen_square[i][col]; for (i = 1; ok && count - i >= 0 && col - i >= 0; i++) ok = !queen_square[count - i][col - i]; for (i = 1; ok && count - i >= 0 && col + i < board_size; i++) ok = !queen_square[count - i][col + i]; return ok;

}70

Page 71: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

71

Page 72: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

72

Page 73: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

73

Page 74: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

74

Page 75: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

75

Page 76: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

76

Page 77: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

77

Page 78: 1 Chapter 1 RECURSION. 2 Chapter 1  Subprogram implementation  Recursion  Designing Recursive Algorithms  Towers of Hanoi  Backtracking  Eight Queens.

Backtracking – Eight Queens problem

78