郝斌数据结构关于汉诺塔的C算法解析
2016-01-17 14:36
253 查看
算法:
算法结构分析,以3为例
伪算法:
if(n>1){
如果:是1个盘子
直接将A的盘子从A移到C
否则:
A的n-1个盘子从A借助C移到B
A的第n个盘子直接从A移到C
B的n-1个盘子借助A移到C
}
先看伪算法看不懂,直接看算法实现然后看算法实现的解析,最后看伪算法,就差不多能懂了
反正我没懂这个伪算法怎么出来的
#include <stdio.h> void hannuota(int n, char A,char B, char 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) { char ch1 = 'A'; char ch2 = 'B'; char ch3 = 'C'; int n; printf("请输入要移动盘子的个数:"); scanf("%d",&n); hannuota(n,'A','B','C'); return 0; }
算法结构分析,以3为例
伪算法:
if(n>1){
如果:是1个盘子
直接将A的盘子从A移到C
否则:
A的n-1个盘子从A借助C移到B
A的第n个盘子直接从A移到C
B的n-1个盘子借助A移到C
}
先看伪算法看不懂,直接看算法实现然后看算法实现的解析,最后看伪算法,就差不多能懂了
反正我没懂这个伪算法怎么出来的
相关文章推荐
- 农夫过河(数据结构)之C语言
- Swift学习枚举和数据结构
- 算法与数据结构学习资源大搜罗——良心推荐
- 串匹配-BF算法
- 单链表的相关算法
- 二叉堆
- 4-1-串的顺序存储结构-串-第4章-《数据结构》课本源码-严蔚敏吴伟民版
- 数据结构(线性表,队列,栈,树,图)(Unfinished)
- OGG文件的数据结构以及读取其注释信息的代码
- 数据结构-链表的基础操作实现
- 数据结构与算法——有1亿个整数,找出最大的1000个,要求时间越短越好,空间占用越少越好
- 21 反转句子顺序
- 数据结构_7:图算法 :c++/STL
- 数据结构_7:图算法 :最短路径
- 数据结构_7:图算法 :图的最小生成树
- 小菜一步一步学数据结构之(四)单链表
- 数据结构_7:图算法 :图的遍历
- 数据结构之单链表常见操作 C
- vxworks源码剖析- 数据结构篇一(双向链表)-转
- 数据结构_7:图算法 :图的存储