问题标签 [non-recursive]

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 投票
7 回答
10540 浏览

recursion - 递归算法的迭代版本,以制作二叉树

鉴于此算法,我想知道是否存在迭代版本。另外,我想知道迭代版本是否可以更快。

这是某种伪蟒蛇...

该算法返回对树根的引用

0 投票
4 回答
25923 浏览

recursion - 以非递归方式检索二叉树节点的深度

谁能指出一种在不使用递归的情况下获取二叉树(不是平衡树或 BST)中节点深度的方法?理想情况下使用 Java/C/C#

节点表示为:

我的第一个想法是使用带有 FIFO 列表的 Level Order,但我在检测级别何时发生变化时遇到了困难,特别是对于不平衡的树。

0 投票
30 回答
107546 浏览

binary-tree - 无递归二叉树的后序遍历

在不使用递归的情况下对二叉树进行后序遍历的算法是什么?

0 投票
2 回答
1342 浏览

file - 仅当前文件夹文件列表?

您好,我正在尝试使用 Perforce 语法来获取(例如使用“fstat”)仅在给定文件夹(仓库)中的文件列表,而不是来自所有子文件夹的垃圾。但是我在文档中找不到任何东西,使用谷歌时没有任何相关内容,甚至尝试使用“。”,“.../。” 等等让我无处可去...

那是因为根本不可能吗?我不明白为什么……那不是表演回击吗?!

提前致谢。赛博。

0 投票
15 回答
29216 浏览

python - 帮助我理解中序遍历而不使用递归

我能够在不使用递归的情况下理解前序遍历,但是我很难进行中序遍历。我只是似乎不明白,也许是因为我不了解递归的内部工作。

这是我迄今为止尝试过的:

内部的while循环感觉不对。此外,一些元素被打印两次;可能我可以通过检查该节点之前是否已打印来解决此问题,但这需要另一个变量,这再次感觉不对。我哪里错了?

我没有尝试过后序遍历,但我想它是相似的,我也会在那里面临同样的概念障碍。

谢谢你的时间!

PS:Lifo和的定义Node

0 投票
2 回答
2493 浏览

inheritance - 如何让子模块的 pom 不继承父插件中的插件?

我的项目有一个父 pom 和几个子模块 pom。我已经在负责构建我们的安装程序分发的父插件中放置了一个插件(使用 install4j)。让这个插件在子模块上运行是没有意义的,所以我在插件的配置中设置了 false,如下所示。问题是,当我运行时mvn clean install install4j:compile <other variables here>,它会在父模块上清理、编译和运行install4j插件,但随后它会尝试在子模块上运行它并崩溃。

这是插件配置

我误解了 的目的inherited=false吗?什么是让它工作的正确方法?

我正在使用 Maven 2.2.0。

0 投票
3 回答
2309 浏览

c++ - 一种非递归方法来生成故障组合问题

我想要一种非递归方法来解决生成某些字符或数字组合的问题。

因此,给定数字 n 的子集 k,生成所有可能的组合 n!/k!(nk)!

给定前一个组合,递归方法将给出一个组合。

非递归方法将生成循环索引i的给定值的组合。

我用这段代码解决了这个问题:

用 n = 4 和 k = 3 测试,它可以工作,但如果我将 k 更改为 > 3 的数字,它就不起作用。

是不是因为 (nk)! 如果 n = 4 且 k = 3 为 1。如果 k > 3 它会大于 1?

谢谢。

0 投票
6 回答
23638 浏览

python - 非递归 os.walk()

我正在寻找一种方法来进行非递归os.walk()步行,就像os.listdir()作品一样。但我需要以同样的方式os.walk()返回。任何的想法?

先感谢您。

0 投票
3 回答
9069 浏览

algorithm - 在不使用递归的情况下重写递归函数

我正在重写一些现有代码,其中递归调用不容易实现也不需要。(如果你必须知道的话,在 Fortran 77 中。)我考虑过从头开始制作一个堆栈来跟踪所需的调用,但这似乎很笨拙,我宁愿不为数组分配内存递归不深。(我也不相信 Fortran 77 支持动态数组大小调整。)

关于如何采用明显递归函数并以非递归方式重写它而不浪费堆栈空间的一般解决方案的任何其他建议?

非常感谢,老麦克斯特

0 投票
2 回答
4835 浏览

c++ - 计算斯特林数的动态规划方法

这是我使用动态规划确定斯特林数的尝试。

定义如下:

S(n,k) = S(n-1,k-1) + k S(n-1,k),如果 1 < k < n

S(n,k) = 1,如果 k=1 或者 k=n

看起来不错,对吧?除非我运行单元测试...

谁能看到我做错了什么?

谢谢!

顺便说一句,这是递归解决方案: