汉诺塔递归详解3个盘

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

void sub (int n, char c, char b, char a)

{ if(n==0)return; sub(0,c, a,

b );

k++;

输出:第k<<"步"<"<

sub(0,a,b,c );

}

(3) void sub (int n, char a, char c, char b)

{ if(n==0)return;

sub(n-1,a, b, c); k++;

输出:第k<<"步"<"<

}

1 'A' 'C' 'B'

○3 ○1 ○2 ○4 (4) void sub (int n, char a, char b, char c)

{ if(n==0)return;

sub(n-1,a, c, b);

k++;

输出:第k<<"步"<"<

sub(n-1,b,c,a);

}

0 'A' 'B' 'C'

3 ○1 ○2

○4 ○5 (5)

(6) (7)

(8)

1 ' C ' 'B' 'A '

(13) (14)

(15)

(16)