【发布时间】:2019-08-04 15:01:06
【问题描述】:
我的问题是关于 Java 堆栈的设计。是在设计时考虑到了递归,还是由于堆栈的结构,递归成为了一个东西?
【问题讨论】:
-
递归是几乎所有比 FORTRAN 更新的计算机语言的基本设计原则。
-
调用堆栈是更多语言的常用实现技术,包括 Fortran。
-
实际上你需要 3 个堆栈来模拟(即使只有几乎)各种递归(河内塔)。但问题是:“模仿”恰到好处。为什么要模拟并让编译器从递归方法中创建非递归的东西?虽然有理由(至于任何事情)Java 强调(或强调)这一点。所以你可以递归,但java不会将给定的递归代码复杂地重构为非递归的东西。
标签: java recursion design-patterns stack history