求大神将下面递归算法改为非递归算法,万分感谢

问题描述

求大神将下面递归算法改为非递归算法,万分感谢

public void void processFilePath(String sourceDir) {
File file = new File(eachSource);
if (file.isDirectory()) {

for (File each : file.listFiles()) {
processFilePath(each.getAbsolutePath());
}

} else if (file.getAbsolutePath().endsWith(".java")) {
System.out.println(file.getAbsolutePath());
}

}

解决方案

你这个貌似就是递归啊!

解决方案二:

你要找的是不是这个?
public static void scanDirNoRecursion(String path){
int num = 0 ;
LinkedList list = new LinkedList();
File dir = new File(path);
File file[] = dir.listFiles();
for (int i = 0; i < file.length; i++) {
if (file[i].isDirectory())
list.add(file[i]);
else{
System.out.println(file[i].getAbsolutePath());
num++;
}
}
File tmp;
while (!list.isEmpty()) {
tmp = (File)list.removeFirst();//首个目录
if (tmp.isDirectory()) {
file = tmp.listFiles();
if (file == null)
continue;
for (int i = 0; i < file.length; i++) {
if (file[i].isDirectory())
list.add(file[i]);//目录则加入目录列表,关键
else{
System.out.println(file[i]);
num++;
}
}
} else {
System.out.println(tmp);
num++;
}
}
}

解决方案三:

同意楼上

解决方案四:

如果你只是要找一个非递归的程序,自然可以google下,但是这种程序往往和你的程序没什么关系。但是如果你是想掌握一般地,将一个递归算法转为非递归的规律(直接根据程序转,无需考虑别的算法)。我可以给你一些指导。
具体来说,就是使用堆栈来模拟递归,http://bbs.csdn.net/topics/390317050

解决方案五:

思路就是把所有的文件夹都存起来 然后对这个循环 就是楼上给的代码

时间: 2024-08-03 22:40:50

求大神将下面递归算法改为非递归算法,万分感谢的相关文章

eclipse 经常自动关闭怎么回事?求大神帮忙看看!错误日志如下,万分感谢哦

问题描述 eclipse 经常自动关闭怎么回事?求大神帮忙看看!错误日志如下,万分感谢哦 A fatal error has been detected by the Java Runtime Environment: # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000062140af0, pid=4372, tid=4240 # JRE version: Java(TM) SE Runtime Environment (7.0_7

c++ opencv 分裂合并-求大神帮忙把代码改成调用opencv库的,谢谢。

问题描述 求大神帮忙把代码改成调用opencv库的,谢谢. include using namespace std; #include //需要使用堆栈,对堆栈进行操作 #include "conio.h" include "viLib.h" // 包含头文件 pragma comment( lib, "viLib.lib" ) // 包含viLib.lib库 include "viImage.h" // 包含头文件 prag

求大神看看,C语言二叉树非递归遍历问题 ,最后输出正确,然后在程序崩溃

问题描述 求大神看看,C语言二叉树非递归遍历问题 ,最后输出正确,然后在程序崩溃 #include #include #include typedef struct TNode { char date; struct TNode *lchild,*rchild; }TNode,*BiTree; typedef struct { BiTree top; BiTree *base; int stacksize; }Stack; int createBiTree(BiTree &S){ char ch

有没有哪位大神有QT编写的图书馆管理系统?万分感谢

问题描述 有没有哪位大神有QT编写的图书馆管理系统?万分感谢 用QT做的图书馆管理系统,不需要太复杂,最好能有详细一点的注释.万分感谢 解决方案 http://download.csdn.net/download/i_love_u_5/6886105http://download.csdn.net/detail/lea200304/4049593http://download.csdn.net/detail/qyczyr/6676283

javascript-JavaScriptMP3播放器怎么修改尺寸,求大神

问题描述 JavaScriptMP3播放器怎么修改尺寸,求大神 这个JavaScript如何改播放器的尺寸? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&qu

为什么getgarphics()返回空指针?跪求大神(怎么木有人来?新人第一贴啊,加到最高分了啊啊啊)

问题描述 看过一些帖子里说在FramesetVisible之前获取Graphics对象,会得到null,但是查阅API发现这段话:创建供绘制闭屏图像(off-screenimage)使用的图形上下文.此方法仅供闭屏图像调用.其中图形上下文字的就是graphics了?那么闭屏图像是指非可视化的图像?这不就和上述的visible矛盾了么?这是一个问题,下附代码(不用全看,后有解释,其后还有些小问题)跪求大神(望浅显易懂,本人非科班出生,刚自学一星期):publicclassBreakOutexten

c语言-C++代码改成C语言代码,没学过C++好多看不懂啊(泪奔······)求大神指点,我用的VC6.0

问题描述 C++代码改成C语言代码,没学过C++好多看不懂啊(泪奔······)求大神指点,我用的VC6.0 代码如下, #include "winsock2.h" #include "Winsnmp.h" #include 这里是string以下都要用 < 和 > 括起来(不知为何不显示=,=) #include vector #include algorithm #include iostream #pragma comment(lib,"

怎样把txt数据改成json格式啊,求大神赐教~

问题描述 怎样把txt数据改成json格式啊,求大神赐教~ 我在做大数据可视化,有一堆txt数据需要自动转成json格式,并且将json数据导入js文件中,具体怎样实现,求大神给个小例子,,,还有JSP能不能调用外部的json数据啊 解决方案 可以用Java打开txt文件,然后转换成json数据(推荐使用gson库进行解析). 大概流程如下: //获取文件内容.List context = Files.readAllLines(Paths.get(""123.txt"&quo

wpf webbrowser改变IE内核,改了注册表,可是还是不行,求大神支招

问题描述 wpf webbrowser改变IE内核,改了注册表,可是还是不行,求大神支招 wpf webbrowser改变IE内核,改了注册表,可是还是不行,求大神支招 解决方案 我觉得webbrose不好用-还是换个吧-cefsharp你可以试试这个-基于谷歌内核的浏览器