草庐IT

recursion

全部标签

c# - 将所有 child 放到一个列表中 - 递归 C#

C#|.NET4.5|EntityFramework5我在EntityFramework中有一个类,如下所示:publicclassLocation{publiclongID{get;set;}publiclongParentID{get;set;}publicListChildren{get;set;}}ID是位置的标识符,ParentID将其链接到父位置,而Children包含父位置的所有子位置。我正在寻找一种简单的方法,可能是递归的,将所有“位置”及其子项都放到一个包含Location.ID的列表中。我在递归地概念化这个问题时遇到了麻烦。感谢您的帮助。这是我目前所拥有的,它是对实

c# - 如何执行完整的递归目录和文件扫描?

这是我的代码:privatestaticvoidTreeScan(stringsDir){foreach(stringdinDirectory.GetDirectories(sDir)){foreach(stringfinDirectory.GetFiles(d)){//Savefilef}}TreeScan(d,client);}问题是它没有获取sDir(起始目录)的FILES它只获取文件夹和文件在子文件夹中。如何让它也从sDir获取文件? 最佳答案 不要重新发明轮子,使用GetFiles的重载,允许您指定它搜索子目录。strin

c# - 在 C# 中递归复制内容的最佳方法是什么?

使用C#和ASP.NET将一个文件夹的内容递归复制到另一个文件夹的最佳方法是什么? 最佳答案 你可以试试这个DirectoryInfosourcedinfo=newDirectoryInfo(@"E:\source");DirectoryInfodestinfo=newDirectoryInfo(@"E:\destination");copy.CopyAll(sourcedinfo,destinfo);这是完成所有工作的方法:publicvoidCopyAll(DirectoryInfosource,DirectoryInfotar

c# - 在 C# 中使用递归

在使用递归时,有没有关于如何避免堆栈溢出的一般规则? 最佳答案 您能够递归多少次取决于:堆栈大小(通常为1MBIIRC,但二进制文件可以手动编辑;我不建议这样做)递归的每个级别使用多少堆栈(例如,具有10个未捕获Guid局部变量的方法将比没有任何局部变量的方法占用更多堆栈)您正在使用的JIT-有时JIT将使用尾递归,有时则不会。规则很复杂,我记不住了。(有一个blogpostbyDavidBromanbackfrom2007和anMSDNpagefromthesameauthor/date,但它们现在可能已经过时了。)如何避免堆栈溢

c# - TFS2010 : Retrieve all changesets associated with a branch (full recursion)

这是关于TFS2010的mypreviousquestion和创建变更日志的可能性之后的。我以前使用标签来标识程序的版本,但是由于标签不是固定的时间点,因此现在使用分支。分支层次结构如下所示:如您所见,主干有两个不同的应用程序:APP_A(应用程序A)和APP_B(应用程序B)。两者几乎相同,但功能上有所不同。这是创建应用程序新版本(例如1.3版)的过程:修改了Maintrunk(添加了新功能,修复了错误……)从修改后的Maintrunk中,创建一个新分支:Maintrunk1.3APP_A分支可能会被修改,因此APP_A的独特功能将与v1.3的修改一起使用APP_B分支可能会被修改,

c# - 在 C# 中,在算法中使用递归函数是一种好习惯吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion在许多函数式语言中,使用递归被认为是一种很好的做法。我认为这很好,因为编译器优化函数式语言代码的方式。但是,在创建算法时,在C#中使用递归是一种好习惯吗?就C#而言,递归算法会导致您的堆栈急剧增长(如果调用量非常大),这不会很快,并且可能会导致堆栈溢出。或者也有一些优化正在发生以提高递归函数的效率?如果您能对在函数式语言和C#中使用递归的算法进行一些比较(速度、内存、可读性),我将不胜感激

javascript - 检查字符串 Javascript 中的重复字符

我想知道是否有一种方法可以在不使用双循环的情况下检查字符串中的重复字符。这可以用递归来完成吗?使用双循环的代码示例(根据字符串中是否有重复字符返回true或false):varcharRepeats=function(str){for(vari=0;i非常感谢! 最佳答案 这样做会:functionhasRepeats(str){return/(.).*\1/.test(str);} 关于javascript-检查字符串Javascript中的重复字符,我们在StackOverflow上

javascript - 矩阵的螺旋遍历——JavaScript中的递归求解

我正在尝试提出一个采用如下矩阵的解决方案:[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]并返回一个以螺旋形式遍历数组的数组,因此在本例中:[1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10]我在使用这个递归解决方案时遇到问题,其中结果数组采用第一个数组,其余数组的最后一个元素,倒序排列的底部数组,然后是中间的第一个元素数组,然后在没有外部“外壳”的情况下重组数组,以便可以递归调用剩下的内容,直到中心有一个元素的数组或2x2矩阵(我的基本情况,尽管后者可能不是必需的。..)我的解决方案,但不起作用,如下所示。关

Javascript 递归改进

工作人员开玩笑地发送了一封电子邮件,其中包含一个旨在使您的浏览器崩溃的html文件,如下所示functioncrash(){for(i=0;i无论如何,它在Chrome中并没有很好地完成它,并且出现了一个对话,它创建了一个友好的竞争,看看谁可以编写javascript以尽可能快地使页面计数达到5,000,000,000,而不会导致浏览器变得无响应或崩溃。我想出了以下一段旨在在Chrome中使用的javascript。functioncountToFiveBillion(counter,num){if(num0这只会在chrome中运行的原因是我正在使用setTimeout调用来避免在c

javascript - 如何使用非递归堆栈编写递归函数?

为了尝试在JavaScript中实现一个不会使旧浏览器因堆栈溢出而崩溃的PEG,我想制作一个以非递归方式解析字符串的解析表达式语法。你怎么做到这一点?感觉脑筋急转弯。假设您有这样的结构:一个文法有很多表达一个表达式有很多匹配器一个matcher有很多tokens(或者任何更好的词)token可以指向另一个expression,也可以是原始字符串或正则表达式。因此,如果它指向另一个表达式,这就是递归开始的地方。假设您这样定义层次结构:vargrammar=newGrammar('math');varexpression=grammar.expression;expression('mat