2013-02-16 103 views
3

當我寫代碼來搜索文件中遞歸的目錄,比如我申請以下方法:目錄中搜索文件遞歸使用預購職務序列和序

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

如果我需要證明它在預訂,按序和後序遍歷中,我該怎麼做?

我無法通過此文件搜索來關聯樹遍歷。

+0

自然的定義這不是做以文件搜​​索。你知道如何做前/後序遍歷嗎? – 2013-02-16 20:51:18

+0

另外,按順序遍歷對於二叉樹只有真正的意義。 – 2013-02-16 20:52:15

+0

[此](http://en.wikipedia.org/wiki/Tree_traversal)是否可以很好地解釋它? – Dukeling 2013-02-16 20:52:15

回答

1

由於家長在子女面前處理(打印),所以您的代碼處於預訂狀態。如果您將打印件移至循環之後,則會在後續訂單中進行。在這種情況下,按順序不會有太大意義。如果你有一棵二叉樹,那麼如果你在處理每個孩子的父親之間處理父親。

+0

感謝您的快速回答,在這種情況下是否有序遍歷? – 2013-02-16 20:55:02

+0

「可能」是的。例如,您可以在處理第一個孩子後處理父母。不過,這沒有意義。 – Eduardo 2013-02-16 20:56:23

+0

如果您有一個二叉樹,其中左側子樹的項目低於父項,且右側子樹項的父項大於父項,則按順序處理將按順序打印樹。這是您何時使用它的一個例子。但這裏沒有道理。 – Eduardo 2013-02-16 20:57:35

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()); 
} 

和中序遍歷不具有一般的樹