2017-06-16 6 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 

iは長いコードを発見し、私はどのような出力になり、混乱しましたか?

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右脳の瞬間、申し訳ありません –

答えて

0

、簡単なコードのような:

あります事前に注文

が長いコードを発見し、私は混乱してしまった、それだけ長くあなたが持っているためだ

すべてのトラバーサル

入力が10の場合、-10,12,8,21,34出力はどのようになりますか?

実際のツリーの外観(可能なトラバーサルの番号のリストが出力される可能性がある)がわからなくても、誰もそれに答えることはできません。その情報を取得したら、コードを実行して(好ましくはデバッガをステップ実行して)、それが何であるかを確認してください。

+0

は、ツリーが紙をどのように見えるか、そしてこの例について私が知ったいくつかの追加情報を追加しました。 –

+0

あなたはフォーマットがどうなっているのか理解できない場合、木がどのように構築されているのか混乱しているようです。 –

+0

そうかもしれませんが、ちょうど最近、木のトラバーサルを見始めました。 –

関連する問題