问题标签 [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.
recursion - 递归算法的迭代版本,以制作二叉树
鉴于此算法,我想知道是否存在迭代版本。另外,我想知道迭代版本是否可以更快。
这是某种伪蟒蛇...
该算法返回对树根的引用
sql - 如何在 MSSQL 2005 中创建递归查询?
假设我有下表:
我想在一个查询中检索詹姆斯的所有后代(珍娜、詹妮弗、彼得、爱丽丝、史蒂夫)。谢谢,巴勃罗。
python - 我想要一个将所有可能的组合写入文本文件的不同行的程序
我想编写一个程序,将一组变量的每个组合打印到一个文本文件中,创建一个单词列表。每个答案应写在单独的行上,并将 1 位、2 位和 3 位的所有结果写入单个文本文件。
有没有一种简单的方法可以编写一个可以完成此任务的 python 程序?这是打印 1、2 和 3 位可能的所有二进制数字组合时我期望的输出示例:
ruby - 如何增加 ruby 应用程序的堆栈大小。递归应用程序获取:堆栈级别太深(SystemStackError)
在 stackoverflow.com 上发布堆栈溢出问题,多么有趣:-)
我正在运行一些递归 Ruby 代码,我得到:"Stack level too deep (SystemStackError)"
(我很确定代码有效,我没有处于无限递归的死亡螺旋中,但这不是重点)
无论如何可以更改我的 Ruby 应用程序允许的堆栈深度/大小?
如果这是 Ruby 中的限制,我不太明白,因为错误显示“堆栈级别”,这给我的印象是 Ruby 以某种方式计算堆栈的“级别”,或者它只是意味着堆栈已满。
我试过在 Vista 和 Ubuntu 下运行这个程序,结果相同。在 Ubuntu 下,我尝试使用 'ulimit -s' 将堆栈大小从 8192 更改为 16000,但这并没有改变任何东西。
编辑:感谢您的反馈。
我确实意识到使用递归函数可能不是最可靠的方法。但这也不是重点。我只是想知道是否有办法增加堆栈大小......期间。正如我所提到的,我确实在运行 ruby 脚本之前尝试运行 ulimit -s 16000 ..没有任何改进..我用错了吗?
Edit2:实际上,我在代码的边缘情况下进行了无限递归。
收到错误时截断的 ruby 堆栈跟踪"Stack level too deep"
有点误导。
当具有涉及多个函数的递归行为时,您会得到递归数量比实际数量少得多的印象。在此示例中,可能会在超过 190 次调用后崩溃,但实际上大约是 15000 次调用
-安德烈亚斯
java - 重构这个递归方法?
我对递归的想法很陌生,这实际上是我第一次尝试编写递归方法。
我试图实现一个递归函数 Max,它传递一个数组,以及一个保存数组大小的变量,以便打印最大的元素。
它有效,但感觉不对!
我还注意到,我似乎比一般同学更多地使用静态修饰符......
任何人都可以提供任何一般提示以及有关如何改进代码的反馈吗?
}
linux - 在 Linux CLI 中以相对于当前目录的路径递归列出文件
这类似于这个问题,但我想在 unix 中包含相对于当前目录的路径。如果我执行以下操作:
它不包括完整路径。例如,我有以下目录结构:
上面的代码将返回:
如何使用标准 Unix 命令包含相对于当前目录的路径?
python - Python:使用递归算法作为生成器
最近我写了一个函数来生成具有非平凡约束的某些序列。问题来自一个自然的递归解决方案。现在碰巧的是,即使对于相对较小的输入,序列也是数千个,因此我更愿意使用我的算法作为生成器,而不是使用它来填充所有序列的列表。
这是一个例子。假设我们想用递归函数计算一个字符串的所有排列。以下朴素算法采用额外的参数“存储”,并在找到时附加一个排列:
(请不要在意效率低下,这只是一个例子。)
现在我想把我的函数变成一个生成器,即产生一个排列而不是将它附加到存储列表中:
此代码不起作用(该函数的行为类似于一个空生成器)。
我错过了什么吗?有没有办法将上述递归算法变成生成器而不用迭代算法替换它?
php - PHP如何进行递归函数调用?
PHP(以及其他)将首先执行最深的函数,然后逐步退出。例如,
我正在为模板解析器做一些与上述示例非常相似的事情。它寻找标签
并将其替换为名称为 $tag_name的变量。再举一个例子:
我该怎么做呢?这有意义吗?如果没有,我可以尝试更好地解释。
ruby-on-rails - 通过部分实现递归是最佳实践吗?
我需要在 HTML 中显示嵌套的集合结构。我正在使用以下部分进行操作:
这是拥有代码的最佳位置吗?我“觉得”to_html
对象上应该有一个方法可以为我转储整个树结构,尽管这可行。
sql - 我可以在 Sql Server 2005 视图中使用递归吗?
我试图OPTION (MAXRECURSION 0)
在视图中使用来生成日期列表。这似乎不受支持。这个问题有解决方法吗?
编辑以解释我真正想做的事情:
我有 2 张桌子。
table1: int weekday, bool 可用
表 2:datetime 日期,可用布尔型
我想要结果:view1:日期(这里是今年的所有日子),可用(来自 table2 或来自 table1 时不在 table2 中)。
这意味着我必须在工作日的日期申请加入。我希望这个解释是可以理解的,因为我实际上在查询中使用了更多具有更多字段的表。
我找到了这段代码来生成递归: