您好,欢迎来到伴沃教育。
搜索
您的当前位置:首页hanoi塔程序解释

hanoi塔程序解释

来源:伴沃教育


hanoi(int n int one int two int three)

n=3

hanoi(3,A,B,C)注释:n=3,one=A,two=B,three=C!

执行到hanoi(n-1,one,three,two);hanoi(3-1,A,C,B)

调用hanoi函数(重新调用)

hanoi(2,A,C,B)注释:n=2,one=A,two=C,three=B!

执行到hanoi(n-1,one,three,two);hanoi(2-1,A,B,C)

再次调用hanoi函数(重新调用)

hanoi(1,A,B,C)注释:n=1,one=A,two=B,three=C!

n=1

执行

move(one,three)

输出:A-->C.............................................................a

执行完hanoi(1,A,B,C)函数后返回到hanoi(2,A,C,B)函数中。注释:被调函数执行完之后返回调用它的 函数中(主调函数)。

执行hanoi(2,A,C,B)函数中的move(one,three)函数

输出:A-->B..............................................................b

之后执行到move(one,three)下面的hanoi(n-1,two,one,three)

hanoi(2-1,C,A,B)

函数调用hanoi函数。

hanoi(1,C,A,B)

n=1

执行

move(one,three)

输出:C-->B...............................................................c

彻底执行完hanoi(2,A,C,B)函数。

返回调用hanoi(2,A,C,B)此函数的hanoi的(3,A,B,C)函数中

执行hanoi(n-1,one,three,two)下面的move(one,three)函数

输出:A-->C................................................................d

之后执行hanoi(n-1,two,one,three):hanoi(3-1,B,A,C)

调用hanoi函数

hanoi(2,B,A,C)注释:n=2,one=B,two=A,three=C!

执行hanoi(2-1,B,C,A)

调用hanoi函数

hanoi(1,B,C,A)

n=1

执行

move(one,three)

输出:B-->A.................................................................e

返回调用此函数的hanoi(2,B,A,C)函数中

执行move(one,three)

输出:B-->C..................................................................f

执行hanoi(n-1,two,one,three):hanoi(2-1,A,B,C)

调用hanoi函数

n=1

执行move(one,three)

输出:A-->C...................................................................g

返回hanoi(2,B,A,C)函数中

a,b,c,d,e,f,g加一起是函数的执行结果

递归调用时重新调用函数。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务