3

当我编写代码以递归方式搜索目录中的文件时,例如我应用以下方法:

public void list(File file) {
    System.out.println(file.getName());
    File[] children = file.listFiles();
    for (File child : children) {
        list(child);
    }
}

如果我需要在前序、中序和后序遍历中显示它,我该怎么做?

我无法与此文件搜索相关的树遍历。

4

2 回答 2

1

您的代码已预订,因为父级在子级之前处理(打印)。如果您将打印移动到循环之后,它将是后订单。在这种情况下,按顺序没有太大意义。如果你有一棵二叉树,那将是你在处理每个子节点之间处理父节点。

于 2013-02-16T20:51:35.410 回答
0

您正在做的是预购遍历。

这是后序遍历:

public void list(File file) { 
    if(file == null)return;  
    File[] children = file.listFiles();
    for (File child : children) {
        list(child);
    }
   System.out.println(file.getName());
}

并且中序遍历对一般树没有自然定义

于 2013-02-16T20:55:10.553 回答