汉诺塔非递归算法.我只是将盘子的数量等于2,3的情况代到网上别人给的算法中验证了一下,没有错。并没有证明算法的正确性。算法是否有效,有待大家证明。 3po:xMY
5eWwgA
include <iostream> Kv~U6_=1O
#include <stdlib.h> _o8?E&d
4bgqg0z>
#ifdef _WIN32 J`2"KzR0w"
using namespace std; )m. 4i =X
#endif 7B?c{
Pi|o` d
static void hanoi(int height) W5R\Q,x6
{ K<>sOWZ'S
int fromPole, toPole, Disk; @e{^`\ l=<
int *BitStr = new int[height], //用来计算移动的盘的号码 =G]@+e
*Hold = new int[height]; //用来存贮当前的盘的位置。hold[0]为第一个盘所在的柱号 Dih3}X&jn$
char Place[] = {'A', 'C', 'B'}; }}<z/zN&^
int i, j, temp; C`q@X(_
PdvqDa8
for (i=0; i < height; i++) 4f<$4d^md
{ Q%f|~Kl-hd
BitStr = 0; <