汉诺塔非递归算法.我只是将盘子的数量等于2,3的情况代到网上别人给的算法中验证了一下,没有错。并没有证明算法的正确性。算法是否有效,有待大家证明。 T6=q[LpsKN
{Y#$
include <iostream> rS/}!|uAu
#include <stdlib.h> >:yU bo)
4:S?m(ah/
#ifdef _WIN32 x&PVsXdt5m
using namespace std; ,@*Srrw
#endif uY'77,G_J
i9%cpPrg8
static void hanoi(int height) fR6.:7&
{ ,F)9{ <r]
int fromPole, toPole, Disk; :Kt'Fm,s?
int *BitStr = new int[height], //用来计算移动的盘的号码 GI40Ztms
*Hold = new int[height]; //用来存贮当前的盘的位置。hold[0]为第一个盘所在的柱号 y8QJ=v* B
char Place[] = {'A', 'C', 'B'}; n'-?CMH`
int i, j, temp; <R>%DD=v^
uh_2yw_
for (i=0; i < height; i++) X_nxC6[m%
{ Y']D_\y
BitStr = 0; =
rLL5<
Hold = 1; 6rD
Oa~<