汉诺塔问题的递归实现

来源:互联网 发布:淘宝解苹果id锁被骗 编辑:程序博客网 时间:2024/06/06 03:47

汉诺塔问题是数据结构中的一个金典问题,最近在学数据结构,实现了一下。

关于详细介绍可参考链接:

点击打开链接

测试代码:

#include <iostream>using namespace std;void PrintMove(unsigned int id, char Axis_x, char Axis_y){        cout << "NO." << id << " : " << Axis_x << "-->" << Axis_y << endl;}void HanoiTower(unsigned int num, char Axis_x, char Axis_y, char Axis_z){        if(num == 1)        {                PrintMove(1, Axis_x, Axis_z);        }        else        {                HanoiTower(num - 1, Axis_x, Axis_z, Axis_y);                PrintMove(num, Axis_x, Axis_z);                HanoiTower(num - 1, Axis_y, Axis_x, Axis_z);        }}int main(){        unsigned int num;        cout << "Please input a positive integer: " << endl;        cin >> num;        HanoiTower(num, 'x', 'y', 'z');                return 0;}

该算法实现较简单,但效率较低,以后有时间再详细研究。

参考文献:《数据结构:C语言版》/ 严蔚敏,吴伟民编著.--北京:清华大学出版社,2007

1 0
原创粉丝点击