1 / 3
文档名称:

汉诺塔问题非递归算法详解.doc

格式:doc   大小:28KB   页数:3页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

汉诺塔问题非递归算法详解.doc

上传人:mh900965 2018/3/3 文件大小:28 KB

下载得到文件列表

汉诺塔问题非递归算法详解.doc

文档介绍

文档介绍:Make By
思路介绍:
首先,可证明,当盘子的个数为n时,移动的次数应等于2^n - 1。
然后,把三根桩子按一定顺序排成品字型(如:),再把所有的圆盘按至上而下是从小到大的顺序放在桩子A上。
接着,根据圆盘的数量确定桩子的排放顺序:
若n为偶数,按顺时针方向依次摆放;
若n为奇数,按顺时针方向依次摆放。
最后,进行以下步骤即可:
(1)首先,按顺时针方向把圆盘1从现在的桩子移动到下一根桩子,即当n为偶数时,若圆盘1在桩子A,则把它移动到B;若圆盘1在桩子B,则把它移动到C;若圆盘1在桩子C,则把它移动到A。
(2)接着,把另外两根桩子上可以移动的圆盘移动到新的桩子上。
即把非空桩子上的圆盘移动到空桩子上,当两根桩子都非空时,移动较小的圆盘。
(3)重复(1)、(2)操作直至移动次数为2^n - 1。
#include<iostream>
#include<cmath>
using namespace std;
#define Cap 64
class Stake //表示每桩子上的情况
{
public:
Stake(int name,int n)
{
this->name=name;
top=0;
s[top]=n+1;/*假设桩子最底部有第n+1个盘子,即s[0]=n+1,这样方便下面进行操作*/
}
int Top()//获取栈顶元素
{
return s[top];//栈顶
}
int Pop()//出栈
{
return s[top--];
}
void Push(int top)//进栈
{
s[++this->top]=top;
}
void setNext(Stake *p)
{
next=p;
}
Stake *getNext()//获取下一个对象的地址
{
return next;
}
int getName()//获取当前桩子的编号
{
return name;
}
private:
int s[Cap+1];//表示每根桩子放盘子的最大容量
int top,name;
Stake *next;
};
void main()
{
int n;
void hanoi(int,int,int,int);
cout<<"请输入盘子的数量:";
cin>>n;
if(n<1)
cout<<"输入的盘子数量错误!!!"<<endl;
else
{
cout<<"移动"<<n<<"个盘子的步骤如下:"<<endl;
if(n%2)
hanoi(n,1,3,2);
else
hanoi(n,1,2,3);
}
}
void hanoi(const int n,int A,int B,int C)
{
Stake a(A,n),b(B,n),c(C,n);
Stake *p,

最近更新

2025年慢性淋巴性白血病治疗新进展 21页

2025年守护健康远离垃圾食品 55页

2025年复旦大学慢性肾衰竭课程解析 128页

二零二五年度企业员工多人借款合作协议 8页

二零二五年度企业内部股权转让及税收筹划的综.. 8页

二零二五年度人工智能研发入股协议范本 8页

二零二五年度亲属名下房产共同购房纠纷解决合.. 7页

2025年创伤诊断与急救策略 43页

二零二五年度云计算服务合同实用指南 9页

二零二五年度事业单位与私营企业专业技术人才.. 9页

2025年感动的高一作文800字 22页

二零二五年度临时用工协议书:正规化临时工岗.. 8页

2025年感动中国先进事迹怎么写 8页

二零二五年度个人铲车租赁及租赁物使用期限约.. 9页

2025年惠民保险一般怎么理赔 2页

二零二五年度个人自建房施工绿色节能设计合同.. 9页

二零二五年度个人珠宝首饰销售提成与售后服务.. 8页

2025年情人节唯美暖心告白文案0句 15页

2025年儿童慢性咳嗽诊治 65页

2025年儿童快速补液攻略与秘诀 28页

二零二五年度个人对个人个人健康体检套餐购销.. 9页

二零二五年度个人创业担保贷款合同 7页

2025年思念一个人的心情短语大全 9页

二零二五年度个人二手房买卖合同(带附属设施.. 9页

2025年怎么辅导小学生写作文? 6页

2025年怎么样写简历自我评价范文 3页

2025年怎么学口语?从外国人最常用的英语口语.. 9页

2025年怎么写融资租赁合同范本 57页

2025年中医调理冠心病的养生秘籍 58页

二零二五小型工厂生产线及品牌使用权转让协议.. 9页