问题标签 [recursion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
14 回答
11208 浏览

language-agnostic - 递归还是迭代?

我喜欢递归。我认为它简化了很多事情。另一个人可能不同意;我认为这也使代码更容易阅读。但是,我注意到递归在 C# 等语言中的使用不像在 LISP 中那样多(顺便说一下,由于递归,这是我最喜欢的语言)。

有谁知道是否有充分的理由不在 C# 等语言中使用递归?它比迭代更昂贵吗?

0 投票
3 回答
663 浏览

c# - 向 Spring.Net 中的递归方法注入建议?

我正在尝试使用 Spring.NET 对 AOP 的支持来执行依赖注入/控制反转/面向方面的编程(对于大量流行语感到抱歉-也许我会发布一个单独的问题,要求某人澄清区别:)) .

具体来说,我想拦截一个递归方法调用,以便每次调用该方法时,都会调用 AOP 建议/拦截器。

除了第一个方法调用之外,Spring.Net 似乎没有拦截任何东西。我认为Spring.Net 每个实例只维护一个拦截器链,并且在第一个方法调用完成之前不再调用任何拦截器。

是否有人有任何关于让每个方法调用(包括递归调用)触发拦截器(建议)的信息?

如果有帮助,我可以提供代码/示例输出。谢谢!

0 投票
4 回答
180458 浏览

python - 如何在 python 中构建递归函数?

如何在 python 中构建递归函数?

0 投票
14 回答
2320 浏览

algorithm - 我应该对算法使用递归还是记忆?

如果我可以选择使用递归或记忆来解决我应该使用的问题?换句话说,如果它们都是可行的解决方案,因为它们提供了正确的输出并且可以在我正在使用的代码中合理地表达,那么我什么时候会使用一个而不是另一个呢?

0 投票
15 回答
52453 浏览

python - lambda 函数可以在 Python 中递归调用自身吗?

常规函数可以在其定义中包含对自身的调用,这没问题。我不知道如何使用 lambda 函数来做这件事,但原因很简单,lambda 函数没有名称可以引用。有没有办法做到这一点?如何?

0 投票
8 回答
4664 浏览

sql - 用于菜单系统的递归 SQL

我有一个具有以下结构的菜单系统表和一些数据。

我需要的是一个查询,我可以将菜单 ID 传递给该查询,它将返回具有该 ID 作为子项的项目列表。但是,我需要它只返回具有到达目的地的有效路径的孩子。所以在上面的例子中,用户最初会看到(应用程序,游戏),当他选择应用程序时,他会看到(办公室)。文本编辑和媒体应该被省略,因为它们下面没有有效的目的地。

最棘手的是,任何给定菜单都没有预先确定的深度。

编辑

今天,MS SQL 2008 出现了问题,但在过去的两周里,我需要 SQLite 和 SQL CE 的类似解决方案。理想的解决方案不应与任何特定的 SQL 引擎绑定。

0 投票
6 回答
7117 浏览

javascript - 递归连接一个javascript函数参数

我遇到了一个 javascript 谜题:编写一段 JavaScript 代码,将所有传递给函数的字符串连接起来:

@米波

看到函数参数表示为索引对象可能是一个数组,我认为可以以递归方式完成。但是我的递归实现抛出了一个错误。--"conc.arguments.shift 不是函数"--

似乎 conc.arguments 不是数组,而是可以通过数字索引访问并具有长度属性???令人困惑 - 请分享意见和其他递归实现。

谢谢

0 投票
4 回答
2497 浏览

c# - C# 大树迭代

我有一个以父/子关系组装的大型结果集。我需要遍历树并向用户显示结果。

我在使用递归之前已经这样做了,但是因为我的结果集可能很大,所以我想避免收到 StackOverflowException 的可能性。

我在使用堆栈的 MSDN 上找到了以下示例。我遇到的问题是因为堆栈是后进先出的,我的数据没有正确显示。我希望它看起来像下面这样:

但它看起来像:

有任何想法吗?

这是我的代码示例。假设DataTable dt具有以下列:ID、ParentID 和 Text

0 投票
5 回答
3400 浏览

sql - 在 Postgres 中爬取父/子数据库关系

我们有以下示例表(实际上取自 stackoverflow 上的另一个示例...)

给定一个特定的孩子,我们希望得到最高的父母。

我知道 tablefunc connectby 函数,但那是为了让父母孩子。

但是,我对另一个方向感兴趣,给一个孩子,它的最高父母是什么?我会尝试使用什么类型的查询?

任何友好的建议表示赞赏。

0 投票
2 回答
3735 浏览

php - PHP RecursiveIteratorIterator 和嵌套集

我在层次结构中有一组对象。有一个顶部的“根”节点,它具有子节点,子节点又具有子节点等。我正在尝试使用嵌套集模型将此结构保存到数据库中,其中每个节点的每个“边”都被编号以定义层次结构,如在 MySQL 中管理分层数据

替代文字
(来源:mysql.com

我的问题是计算左右值。我通常使用 RecursiveIteratorIterator 来遍历层次结构,但是如果不求助于通过引用解析索引变量的递归函数,我无法弄清楚如何计算数字。

有任何想法吗?

这可能没用,但这是我目前拥有的(不正确的)代码:

如您所见,这将给出如下结果:

左右值:

当他们应该是: