递归树花园
调深度/角度看树怎么长;独家"调用栈"小窗口看递归一层层展开再回退。
广告位
参数
树
广告位
它能解决什么问题
递归对小小孩来说就是个"函数调用自己"。这里让递归调用栈肉眼可见,每深入一层栈帧就堆一片,回来时一层层弹掉。
谁适合用
10 岁以上接触 Scratch/JS 函数调用的孩子;理解"为什么递归要 return"。
局限
最大深度 11,再大浏览器会卡;只展示"分形树"这一种递归模式;不能自定义递归函数。
常见问题
Q:什么是"递归"?
函数调用自己。必须有一个"终止条件",否则会无限调用下去导致栈溢出。
Q:什么是"调用栈"?
想象一摞盘子:每次函数调用自己就往上放一个盘子(栈帧),return 时把盘子拿走。盘子太多会塌——这就是"栈溢出"。
Q:为什么深度 11 已经很大了?
深度 N 的递归会同时在栈里放 N 个函数调用。N=11 已经接近浏览器栈的极限,N=20 就会报错。
Q:怎么引导?
调深度从 2 到 11,看每 +1 树变得多复杂。同时把"调用栈"想象成乐高积木,越垒越高。