郝斌--数据结构---汉诺塔实现(c语言实现)

 1 #include <stdio.h>
 2 
 3 void hannuota(int n,char A,char B,char C)//表示A借助于B移到C 
 4 {
 5     /*
 6         如果是1个盘子
 7             直接将柱子上的盘子从A移到C
 8         否则
 9             先将A柱子上的n-1个盘子从C移到B
10             直接将A柱子上的盘子从A移到C
11             最后将B柱子上的n-1个盘子借助A移到C 
12     */
13     if(1 == n)
14     {
15         printf("将编号为%d的盘子直接从%c柱子移到%c柱子\n",n,A,C);
16     }    
17     else
18     {
19         hannuota(n-1, A, C, B);
20         printf("将编号为%d的盘子直接从%c柱子移到%c柱子\n",n,A,C);
21         hannuota(n-1, B, A, C);
22     } 
23 }
24 
25 int main(void)
26 {
27     char ch1 = 'A';
28     char ch2 = 'B';
29     char ch3 = 'C';
30     int n; 
31     
32     printf("请输入要移动的个数: ");
33     scanf("%d", &n);
34     
35     hannuota(n,'A','B','C');
36     
37     return 0;
38 }

 运行示例

posted @ 2015-11-10 21:13  黄滔1996  阅读(455)  评论(0编辑  收藏  举报