System.StackOverflowException太多递归

时间:2012-04-15 12:02:50

标签: c# recursion stack-overflow

我正在做一个算法类,我正在构建Kosaraju's algorithm的实现作为家庭作业的一部分。

我有几个小数据集,其中算法返回正确的结果并执行正常。但是,当我尝试我的作业分配中有5,105,043个边缘和875,714个节点时,我得到一个System.StackOverflowException,这似乎是因为递归过多。

但是,这个递归是解决问题所必需的。所以我要问的是有没有办法配置.Net以允许更多的递归?

1 个答案:

答案 0 :(得分:3)

  

所以我要问的是有没有办法配置.Net以允许更多的递归?

递归限制基于为当前线程分配的堆栈大小。这可以是程序的changed via editbin /stack,也可以是在线程构造时为特定的线程编辑的。

话虽如此,任何recursive algorithm can be switched to using a stack instead。随着时间的推移,这可能会更加可维护,因为它不再依赖于非常大的堆栈来进行适当的处​​理。

相关问题