您现在的位置是:主页 > news > 有哪些网站手游做的好的/网站的优化策略方案
有哪些网站手游做的好的/网站的优化策略方案
admin2025/5/23 3:50:25【news】
简介有哪些网站手游做的好的,网站的优化策略方案,一流本科专业建设网站,wordpress首页文件打不开汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定&…
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
说白了就是有三根柱子,柱子上有若干按大小摆好的盘子,小的只能在大的盘子上面。通过不断的移动将这根柱子上的所有的盘子按原顺序移动到另一根柱子,一次只能移动一根。
要实现这个原理,我们必须运用递归的思想,以及用栈的形式(可以参考下我写的代码)来实现。
开始时:
结束时:
该算法的实现代码:
void hanoi(int n,Stack a, Stack b, Stack c) {if (n == 1)pop_push(a, c); //当a中只有一个元素是,将这个元素传递给c;else {hannoi(n - 1, a, c, b); //将n-1个元素传递给b,b为过度盘pop_push(a, c); //将a第n个元素传递给c;hannoi(n - 1, b, a, c); //将b中n-1个元素传递到c}}
接下来我们一步一步来看看是这个算法是怎么执行的:1.1.hanoi(n=3,a={1 2 3}, b={}, c={})
1.2.hanoi(n=2,a={1 2 3},c={},b={})
1.2.1.hanoi(n=1,a={1 2 3},b={},c={})
1. 2.1.1.pop_push(a={1 2 3},c={}) n=1,所以执行if中的语句执行结果为a={2 3} c={1},回到上一层执行下一步
1.2.2.pop_push(a={2 3},b={}) 执行结果a={3},b={2},接着执行下一步
1.2.3.hanoi(n=1,c={1},a={3},b={2} )
1. 2.3..1.pop_push(c={1},b={2}) n=1,所以执行if中的语句执行结果为 ={1 2} c={},回到上一层执行下一步
1.2.4. 结束,返回上一层 此时 a={3} b={1 2} c={}
1.3 pop-push(a={3},c={}) 执行结果为a={},c={3},执行下一步
1.4.hanoi(n=2,b={1 2},a={},c={3} )
1.4.1hanoi(n=1,b={1 2},c={3},a={})
1. 4.1.1.pop_push(b={1 2 },a={}) n=1,所以执行if中的语句执行结果为b={2 } a={1},回到上一层执行下一步
1. 4.2.pop_push(b={2},c={3}) 执行结果b={} c={2 3} ,执行下一步
1.4.3hanoi(n=1,a={1},b={},c={2 3})
1.4.3.1pop_push(a={1},c={2 3}) n=1,所以执行if中的语句执行结果为 c={1 2 3} a={},回到上一层执行下一步
1. 4.4 结束,返回上一层 此时a={} b={} c={1 2 3}
1.5.结束。
做了几张图,可以配合上面的程序分析进行理解。