经典汉诺塔问题
来源:互联网 发布:音视频格式 知乎 编辑:程序博客网 时间:2024/06/05 15:42
#include <iostream>#include <stack>#include <vector>#include <cassert>using namespace std;class Tower {public:stack<int> tower;int index;Tower(int index_in):index(index_in){}void addElement(int e){if(!tower.empty())assert(tower.top() >= e);tower.push(e);}void moveTopTo(Tower& t){int top = tower.top();tower.pop();t.addElement(top);cout << top << " from Tower " << index << " to Tower " << t.index << endl;}void moveDisks(int n, Tower& des, Tower& buffer){if(n > 0){moveDisks(n-1, buffer, des);moveTopTo(des);buffer.moveDisks(n-1, des, *this);}}};int main(int argc, const char* argv[]){Tower tower1(1);Tower tower2(2);Tower tower3(3);vector<Tower> towers;towers.push_back(tower1);towers.push_back(tower2);towers.push_back(tower3);int n = 4;for(int i = n; i > 0; i--){towers[0].addElement(i);}towers[0].moveDisks(n, towers[2], towers[1]);return 0;}
0 0
- 经典问题-汉诺塔(hanoi)
- 经典汉诺塔问题
- 经典递归问题--汉诺塔
- 经典的汉诺塔问题
- 经典问题之汉诺塔
- 经典汉诺塔问题分析
- 经典递归问题--汉诺塔
- 【经典汉诺塔问题】
- 经典汉诺塔问题分析
- 经典汉诺塔递归问题
- 递归经典算法 汉诺塔问题
- 递归的经典问题《汉诺塔问题》
- c语言经典问题:汉诺塔 Hanoi问题
- 经典问题
- 经典问题
- 经典问题
- 经典问题
- 经典的汉诺塔问题,非经典的Pro
- xcode5如何设置Architectures和Valid Architectures
- cookie 和session 的区别详解
- outgoing calls and incoming calls
- ios编程:蓝牙对接相关方法
- 人生的抉择感悟
- 经典汉诺塔问题
- 【面试题】之数据结构目录
- ClassNotFoundException Com.Sun.Jersey.Spi.Container.Servlet.ServletContainer
- X264和JM的区别,持续更新中……
- 从新女同事说百度搜索的问题和方向
- NYOJ 585 取石子(六)
- mac:资源库的问题
- 在Ubuntu12.04 64bit中编译安装Codeblocks-svn
- 软件兼容性问题引起电脑蓝屏