《汉诺塔问题动态演示》由会员分享,可在线阅读,更多相关《汉诺塔问题动态演示(50页珍藏版)》请在金锄头文库上搜索。
1、/ 汉诺塔 ABCABC/ 汉诺塔 ABC/ 汉诺塔 ABC/ 汉诺塔 ABC/ 汉诺塔 ABC/ 汉诺塔 ABC/ 汉诺塔 ABC/ 汉诺塔 ABC/ 汉诺塔 ABC/ 汉诺塔 ABC/ 汉诺塔 ABC/ 汉诺塔 / 汉诺塔 # include void hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b ) ;printf(“%c %cn”, a , c) ;hanoi ( n-1, b, a, c ) ; void main () int n ;printf( “ Input the numb
2、er of diskes:n “) ;scanf(“%d”,hanoi ( n, A , B , C ) ;Stackn a b cn a b cOutput/ 汉诺塔 void main () int n ;printf( “ Input the number of diskes:n “) ;scanf(“%d”,hanoi ( n, A , B , C ) ;Stackn a b cn a b cH ( 3, A, B, C )3 A B COutputH(n,A,B,C)/ 汉诺塔 void main () int n ;printf( “ Input the number of dis
3、kes:n “) ;scanf(“%d”,hanoi ( n, A , B , C ) ;Stackn a b cn a b cH ( 3, A, B, C )3 A B COutputH(n,A,B,C)void hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b) ; printf(“%c %cn“,a,c);hanoi (n-1, b, a, c) ; / 汉诺塔Stackn a b cn a b cH ( 3, A, B, C )3 A B C2 A C B1 A B COutputH(n,
4、A,B,C)H(n-1,a,c,b)H(n-1,a,c,b)H ( 0, A, C, B )H(n-1,a,c,b)0 A C BH ( 2, A, C, B )H ( 1, A, B, C )void hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b) ; printf(“%c %cn“,a,c);hanoi (n-1, b, a, c) ; Stackn a b cn a b cH ( 3, A, B, C )3 A B CH ( 2, A, C, B )2 A C BH ( 1, A, B,
5、 C )1 A B COutputH(n,A,B,C)H(n-1,a,c,b)H(n-1,a,c,b)H ( 0, A, C, B )H(n-1,a,c,b)0 A C Bvoid hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b) ; printf(“%c %cn“,a,c);hanoi (n-1, b, a, c) ; Stackn a b cn a b cH ( 3, A, B, C )3 A B CH ( 2, A, C, B )2 A C BH ( 1, A, B, C )1 A B C
6、OutputA CH(n,A,B,C)H(n-1,a,c,b)H(n-1,a,c,b)coutvoid hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b) ; printf(“%c %cn“,a,c);hanoi (n-1, b, a, c) ; Stackn a b cn a b cH ( 3, A, B, C )3 A B CH ( 2, A, C, B )2 A C BH ( 1, A, B, C )1 A B COutputA CH(n,A,B,C)H(n-1,a,c,b)H(n-1,a,
7、c,b)H ( 0, B , A, C )H(n-1,b,a,c)0 B A Cvoid hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b) ; printf(“%c %cn“,a,c);hanoi (n-1, b, a, c) ; Stackn a b cn a b cH ( 3, A, B, C )3 A B CH ( 2, A, C, B )2 A C BH ( 1, A, B, C )1 A B COutputA CH(n,A,B,C)H(n-1,a,c,b)H(n-1,a,c,b)H (
8、 0, B , A, C )H(n-1,b,a,c)0 B A Cvoid hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b) ; printf(“%c %cn“,a,c);hanoi (n-1, b, a, c) ; Stackn a b cn a b cH ( 3, A, B, C )3 A B CH ( 2, A, C, B )2 A C BH ( 1, A, B, C )1 A B COutputA CH(n,A,B,C)H(n-1,a,c,b)H(n-1,a,c,b)void hanoi
9、 ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b) ; printf(“%c %cn“,a,c);hanoi (n-1, b, a, c) ; Stackn a b cn a b cH ( 3, A, B, C )3 A B CH ( 2, A, C, B )2 A C BOutputA C A BH(n,A,B,C)H(n-1,a,c,b)coutvoid hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b)
10、; printf(“%c %cn“,a,c);hanoi (n-1, b, a, c) ; Stackn a b cn a b cH ( 3, A, B, C )3 A B CH ( 2, A, C, B )2 A C BOutputA C A BH(n,A,B,C)H(n-1,a,c,b)1 C A BH(n-1,b,a,c)H ( 1, C, A, B )void hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b) ; printf(“%c %cn“,a,c);hanoi (n-1, b, a
11、, c) ; Stackn a b cn a b cH ( 3, A, B, C )3 A B CH ( 2, A, C, B )2 A C BOutputA C A BH(n,A,B,C)H(n-1,a,c,b)H ( 1, C, A, B )1 C A BH(n-1,b,a,c)H ( 0, C, B , A)H(n-1,a,c,b)0 C B Avoid hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b) ; printf(“%c %cn“,a,c);hanoi (n-1, b, a, c)
12、 ; Stackn a b cn a b cH ( 3, A, B, C )3 A B CH ( 2, A, C, B )2 A C BOutputA C A BH(n,A,B,C)H(n-1,a,c,b)H ( 1, C, A, B )1 C A BH(n-1,b,a,c)H ( 0, C, B , A)H(n-1,a,c,b)0 C B Avoid hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b) ; printf(“%c %cn“,a,c);hanoi (n-1, b, a, c) ; S
13、tackn a b cn a b cH ( 3, A, B, C )3 A B CH ( 2, A, C, B )2 A C BOutputA C A BH(n,A,B,C)H(n-1,a,c,b)H ( 1, C, A, B )1 C A BH(n-1,b,a,c)C Bcoutvoid hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b) ; printf(“%c %cn“,a,c);hanoi (n-1, b, a, c) ; Stackn a b cn a b cH ( 3, A, B, C
14、 )3 A B CH ( 2, A, C, B )2 A C BOutputA C A BH(n,A,B,C)H(n-1,a,c,b)H ( 1, C, A, B )1 C A BH(n-1,b,a,c)C BH ( 0, A, C , B )H(n-1,b,a,c)0 A C Bvoid hanoi ( int n, char a, char b, char c ) if ( n = 1 ) hanoi ( n-1, a, c, b) ; printf(“%c %cn“,a,c);hanoi (n-1, b, a, c) ; Stackn a b cn a b cH ( 3, A, B, C )3 A B CH ( 2, A, C, B )2 A C BOutputA C A BH(n,A,B,C)H(n-1,a,c,b)H ( 1