今天给大家分享的是由图老师小编精心为您推荐的C++数据结构学习:递归(2.2),喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!
【 tulaoshi.com - 编程语言 】
3号盘子的目标柱是C,但是已经有了1号盘子,我们最直觉的反映就是——将碍事的盘子搬到另一根柱子上面去。于是,我们要做的是(规律2):保存当前柱的信息(柱子号、应该搬动的最下面一块盘子的号,和它的目标柱),以备当障碍清除后回到现在的柱子继续搬,将当前柱转换为碍事的盘子所在的柱子。假设这样若干步后,我们将7号盘子从A搬到了C,此时,保存当前柱号的栈一定是空了,我们该怎么办呢?

更多内容请看C/C++技术专题 数据结构 数据结构教程专题,或 综上,我们已经把这个问题解决了,可以看出,要害是如何确定当前柱需要移动多少盘子,这个问题请大家自己考虑,给出如下例程,因为没有经过任何优化,本人的编码水平又比较低,所以这个函数很慢——比递归的还慢10倍。
更多内容请看C/C++技术专题 数据结构 数据结构教程专题,或 if (!m) { source = ns.pop(); target_m = ns.pop();
更多内容请看C/C++技术专题 数据结构 数据结构教程专题,或 这个算法实现比递归算法复杂了很多(递归算法在网上、书上随便都可以找到),而且还慢很多,似乎是多余的,然而,这是有现实意义的。
更多内容请看C/C++技术专题 数据结构 数据结构教程专题,或来源:http://www.tulaoshi.com/n/20160219/1623541.html
看过《C++数据结构学习:递归(2.2)》的人还看了以下文章 更多>>