关于递归的初步理解
来源:互联网 发布:淘宝店关了信誉还在吗 编辑:程序博客网 时间:2024/04/30 10:32
递归,按照执行顺序来看就好像是一层又一层的空间,调用自身的地方是入口,条件是出口,当不满足条件时,从出口出去,回到上一层。所以在递归的过程中要搞清楚当前是在哪一层,并且确认当前的参数是什么。
按照 3 层Hanoi 塔来说。
<script>var Hanoi = function( disc, src, aux, dst){if (disc>0){Hanoi(disc - 1, src, dst, aux );document.writeln(' move disc ' + disc + ' from ' + src + ' to ' + dst + '<br/>');Hanoi(disc - 1, aux, src, dst );}};Hanoi(3, "SRC", "AUX", "DST")</script>
(第一层第一个递归调用)3, <span style="font-family: Arial, Helvetica, sans-serif;">SRC</span>, AUX, DST<span style="white-space:pre"></span><span style="font-family: Arial, Helvetica, sans-serif;">2, SRC, DST, AUX<span style="white-space:pre"></span>1, SRC, AUX, DST<span style="white-space:pre"></span>0,SRC, DST, AUX(调用函数,if语句判断不符合,回到上一层继续执行) </span>
<span style="white-space:pre"></span> <span style="white-space:pre"></span>2 SRC -> AUX(writeln输出)<span style="white-space:pre"></span><span style="font-family: Arial, Helvetica, sans-serif;">1 SRC-> DST(执行到writeln输出,再第二个递归调用)</span>
<span style="white-space:pre"></span>1 DST, SRC, AUX(第二个递归调用)<span style="white-space:pre"></span>0 ,DST, AUX, SRC(第二个递归里面的第一个递归调用。if 返回)……示意图画不下去了,就画了前面一部分。横着看,在代码上是往内走。纵着是代码往下走。不知道过半年自己回过头来看还看不看得懂自己画的……
0 0
- 关于递归的初步理解
- 关于递归的理解
- 关于递归的理解
- 关于ThreadLocal的初步理解
- 关于ViewPager的初步理解
- 关于对递归的理解
- 关于对递归的理解
- 关于NP问题的初步理解
- 关于bag of words 的初步理解
- 关于版本管理的一些初步理解
- Java关于多态的初步理解
- 关于协程的初步理解
- 关于单点登录【SSO】的初步理解
- 关于单点登录【SSO】的初步理解
- rn笔记:关于navigator的初步理解
- 关于递归的理解,understanding about recursive
- 递归关于内存的深入理解
- 关于如何理解递归的两则小例子
- # -*- coding: UTF-8 -*-
- W3School 教程整理
- Ionic Framework 说明书
- Yii 2.0 使用笔记
- 欢迎使用CSDN-markdown编辑器
- 关于递归的初步理解
- Jetty9.2开始之路
- 有关Android Bluetooth/蓝牙的介绍
- Android 快速开发系列 ORMLite 框架最佳实践
- C/C++之define用法小结
- HDFS
- Eclipse闪退/打不开/无法启动/一闪而过
- [leetcode] 【链表】141. Linked List Cycle
- 电器组装行业ERP解决方案