汉诺塔(Stack)

原创 2005年04月24日 20:11:00

class Hanoi
{
 friend void TowersOfHanoi(int);
 public:
  void TowersOfHanoi(int n, int x, int y, int z);
 private:
  Stack<int> *S[4];
};
// 把n个碟子从塔X 移到塔Y,可借助塔Z
void Hanoi::TowersOfHanoi(int n, int x, int y, int z)
{
 int d;
 if(n>0)
 {
  TowersOfHanoi(n-1, x, z, y);
  // 从x中移走一个碟子
  S[x]->Delete(d);
  // 把这个碟子放到y上
  S[y]->Add(d);
  showstate();
  TowersOfHanoi(n-1, z, y, x);
 }
}
void TowersOfHanoi(int n)
{
 Hanoi X;
 X.S[1]=new Stack<int>(n);
 X.S[2]=new Stack<int>(n);
 X.S[3]=new Stack<int>(n);
 // 把碟子从大到小放入塔1
 for(int d=n;d>0;d++)
  X.S[1]->Add(d);
 X.TowersOfHanoi(n, 1, 2, 3);
}

Ref:<<数据结构,算法与应用>>P170~172

NYOJ 93 汉诺塔(三) (栈 stack)

题目93 题目信息 运行结果 本题排行 讨论区 汉诺塔(三) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 在印度,有这么一个古老的传说:在世界中...

NYOJ 93--汉诺塔(三)【stack】

汉诺塔(三) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块...
  • hpuhjh
  • hpuhjh
  • 2015年03月11日 12:51
  • 326

NYOJ - 93 - 汉诺塔(三)(STL - stack)

题目描述: 输入 第一行输入一个整数N表示测试数据的组数(N 每组测试数据的第一行有两个整数P,Q(1 输出 如果存在非法指令,请输出illegal 不存在非法指令则输出legal 样例输入   3 ...

nyoj 93 汉诺塔(三) 【stack】

汉诺塔(三) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块...
  • bmicnj
  • bmicnj
  • 2016年06月15日 18:18
  • 146

汉诺塔源码

  • 2017年11月21日 13:49
  • 846B
  • 下载

java汉诺塔小游戏

  • 2017年11月02日 20:14
  • 21KB
  • 下载

联萌十一大决战之厉兵秣马 H. Hanoi Towers(汉诺塔)

[题目链接:] (http://www.bnuoj.com/v3/contest_show.php?cid=6868#problem/H) 题目描述: H. Hanoi Towers Time ...
  • PNAN222
  • PNAN222
  • 2015年10月05日 17:39
  • 151

汉诺塔_Java代码

  • 2016年10月19日 14:20
  • 2KB
  • 下载

汉诺塔课程设计报告与源码

  • 2016年07月07日 19:28
  • 82KB
  • 下载

汉诺塔问题 hanoi tower (递归)。

又来填坑了。 还是递归问题,这次是汉诺塔。 题意是这样的:有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子C上,并且每次移动同...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:汉诺塔(Stack)
举报原因:
原因补充:

(最多只允许输入30个字)