57 _ 递归8 _ 汉诺塔
#include<stdio.h>
//汉诺塔
void hannuota(int n,char A,char B,char C)
{
/*
如果是一个盘子
直接将A柱子上的盘子从A移到C
否则
先将A柱子上的n-1个盘子借助C移到B
直接将A柱子上的盘子从A移到C
最后将B柱子上的n-1个盘子借助A移到C
*/
if(1==n)
{
printf("将编号为%d的盘子直接从%c柱子移到%c柱子\n",n,A,C);
}
else
{
hannuota(n-1,A,C,B);
printf("将编号为%d的盘子直接从%c柱子移到%c柱子\n",n,A,C);
hannuota(n-1,B,A,C);
}
}
int main(void)
{
charch1='A';
charch2='B';
charch3='C';
intn;
printf("请输入要移动盘子的个数:");
scanf("%d",&n);
hannuota(n,'A','B','C');
return0;
}
58 _ 递归9 _ 递归的应用
举例:
递归的应用
59_1线性结构总复习 2线性结构和非线性结构关系 3栈队列链表数组之间的关系【重点】
逻辑结构:
线性:
数组
链表
栈和队列是一种特殊的线性结构
非线性:
树
图
物理结构: