童码工坊

首页 · 全部工具 · 递归树花园

递归树花园

调深度/角度看树怎么长;独家"调用栈"小窗口看递归一层层展开再回退。

广告位

参数

树

广告位

它能解决什么问题

递归对小小孩来说就是个"函数调用自己"。这里让递归调用栈肉眼可见,每深入一层栈帧就堆一片,回来时一层层弹掉。

谁适合用

10 岁以上接触 Scratch/JS 函数调用的孩子;理解"为什么递归要 return"。

局限

最大深度 11,再大浏览器会卡;只展示"分形树"这一种递归模式;不能自定义递归函数。

常见问题

Q:什么是"递归"?

函数调用自己。必须有一个"终止条件",否则会无限调用下去导致栈溢出。

Q:什么是"调用栈"?

想象一摞盘子:每次函数调用自己就往上放一个盘子(栈帧),return 时把盘子拿走。盘子太多会塌——这就是"栈溢出"。

Q:为什么深度 11 已经很大了?

深度 N 的递归会同时在栈里放 N 个函数调用。N=11 已经接近浏览器栈的极限,N=20 就会报错。

Q:怎么引导?

调深度从 2 到 11,看每 +1 树变得多复杂。同时把"调用栈"想象成乐高积木,越垒越高。