2017-06-16 111 views
0

我正在查找樹遍歷,到目前爲止,我沒有理解它,這意味着預訂,按順序,後序。而簡單的代碼,如:樹遍歷,閱讀代碼

sub P(TreeNode) 
Output(TreeNode.value) 
If LeftPointer(TreeNode) != NULL Then 
    P(TreeNode.LeftNode) 
If RightPointer(TreeNode) != NULL Then 
    P(TreeNode.RightNode) 
end sub 

我發現一個代碼是更長,我感到困惑,會有什麼輸出?

public class My { 
public static void print(Node n){ 
    if(n != null) { 
     System.out.print(n.info +""); 
     print(n.left); 
     print(n.right); 
    } 
} 
public static void print2(Node n){ 
    if(n != null) {   
     print2(n.left); 
     System.out.print(n.info +""); 
     print2(n.right); 
    } 
} 

public static void print3(Node n){ 
    if(n != null) {   
     print3(n.left); 
     print3(n.right); 
     System.out.print(n.info +"");   
    } 
} 
public static void main(String[] args) { 
Tree t = new Tree(); 
    t.createTree(); 
    print(t.root); 
    System.out.println(); 
    print2(t.root); 
    System.out.println(); 
    print3(t.root); 
} 
} 

等只是它容易,我明白讓說:輸入是10,-10,12,8,21,34
什麼將輸出樣子?因爲如果我理解正確,那麼所有3(預購,按序,後序)。

樹的樣子:

 10 
-10  12 
8 21 34 

原來,這是我的學校之一考試,他們必須給出答案一個紙,這是他們所得到的信息。沒有人告訴他們樹如何看。

+0

我們看不到你的Tree或Node類,所以這可能不會打印任何東西......你應該在你的代碼中運行你的代碼一個調試器,雖然 –

+0

@ cricket_007正確的,brainfart的時刻,對不起 –

回答

0

而簡單的代碼,如:

有預購

發現了一個代碼,不再和我糊塗了,

這只是不再因爲你有所有遍歷

輸入是10,-10,12,8,21,34輸出是什麼樣子?

沒有人可以在不知道實際樹是什麼樣子的情況下(可能會輸出任何可能的遍歷的數字列表)。一旦你有了這些信息,你自己運行代碼(最好是在調試器中進行),看看它是什麼

+0

增加了樹應該看一張紙,以及一些額外的信息,我發現了關於這個例子。 –

+0

你似乎很困惑如何構建樹而不是遍歷,如果你不明白如何得到這種格式 –

+0

耶可能是這樣的情況,最近纔開始尋找樹遍歷。 –