汉诺塔实现(含数组修改)Implement of hanoi
来源:互联网 发布:域名历史记录查询 编辑:程序博客网 时间:2024/05/01 14:19
汉诺塔的实现,包含伪代码,以及输出流程版本和修改数组版本。
#include <iostream>using namespace std;void hanoiPseudocode(int n, char A, char B, char C){如果是一个盘子直接将盘子从A移到C;否则将 n-1个盘子借助C移到B;直接将盘子从A移到C;将B上的n-1个盘子借助A移到C;}void hanoi(int n, char x, char y, char z){if(n == 1)cout << "move " << n << " from " << x << " to " << z << "\n";else{hanoi(n-1,x,z,y);cout << "move " << n << " from " << x << " to " << z << "\n";hanoi(n-1,y,x,z);}}void Move(int size,int *x, int *z){int i = 0, j = 0;while (x[i]!=-1 && i < size) i++;while (z[j]!=-1 && j < size) j++;z[j] = x[i-1];x[i-1] = -1;for (int i = 0; i < size; i++){cout << x[i] << " ";}cout << "\n";for (int i = 0; i < size; i++){cout << z[i] << " ";}cout << "\n";}void HanoiMove(int n, int size, int *x, int *y, int *z){if(n == 1)Move(size,x,z);else{HanoiMove(n-1,size,x,z,y);Move(size,x,z);HanoiMove(n-1,size,y,x,z);}}int main(){int n = 3;hanoi(n,'A','B','C');int a[] = {3,2,1};int b[3] = {-1,-1,-1};int c[3] = {-1,-1,-1};HanoiMove(n,n,a,b,c);for (int i = 0; i < n; i++){cout << a[i] << " ";}cout << "\n";for (int i = 0; i < n; i++){cout << b[i] << " ";}cout << "\n";for (int i = 0; i < n; i++){cout << c[i] << " ";}cout << "\n";return 0;}
0 0
- 汉诺塔实现(含数组修改)Implement of hanoi
- Tower of Hanoi(汉诺塔)
- 汉诺塔(hanoi)算法实现
- 汉诺塔(Towers of Hanoi)问题
- 汉诺塔 Tower of Hanoi
- 汉诺塔(the Tower of Hanoi )
- 汉诺塔问题(Towers of Hanoi)
- 汉诺塔(Hanoi Tower)的实现
- (Hanoi)汉诺塔java实现程序
- 汉诺塔(Hanoi)问题递归算法实现
- 实现汉诺塔(Hanoi)问题(堆栈、递归)
- 汉诺塔 Hanoi 递归实现
- hanoi汉诺塔C++实现
- c++实现hanoi(汉诺塔)
- POj 3601 Tower of Hanoi 汉诺塔(贪心)
- codeforces 392 B. Tower of Hanoi(汉诺塔 DP)
- 汉诺塔(hanoi) C语言实现
- 汉诺塔hanoi的python实现
- 编程之美热身赛 传话游戏
- nyoj-991-Registration system
- WPF 后台添加单选按钮组。仅供学习参考
- 图论 经典prim算法(MST)
- 新手学python(2):C语言调用完成数据库操作
- 汉诺塔实现(含数组修改)Implement of hanoi
- Objective-c 单例设计模式
- 腾讯技术面经-后台-云计算虚拟化部门
- Spring学习笔记
- App init dlls注册表路径
- 有一天
- DAO层和Service层中访问Session
- Cubietruck开发板SPL启动分析
- 分享两个不错的博客。