2012-03-10 7 views
5

ここで私はバイナリツリーを作って、別の操作をすることを練習しようとしています。JAVA:バイナリツリー

import java.util.*; 
import java.lang.*; 


public class Main { 

public static void main(String[] args) { 

} 
} 

//Building Binary Trees 
class bTree { 

static class Node { //remember to initilize a root 

    String value; 
    Node left, right; 

    Node(String value, Node left, Node right) { 
     this.value = value; 
     this.left = left; 
     this.right = right; 
    } 
    Node(String value) //THIS IS A SIBLING CONSTRUCTOR 
    { 
     this(value, null, null); 
    } 

    Node root = new Node("ROOT"); 
    Node lefty = new Node("LEFT0"); 
    Node righty = new Node("RIGHT0"); 
    root.left = lefty; 
    root.right = righty; 
} 
Node root = null; 
} 

エラーが発生する理由:root.leftとroot.rightの割り当て時に識別子が必要ですか?

ありがとうございます!

答えて

3

代入文

root.left = lefty; 
root.right = righty; 

は、クラスレベルで許可されていません。あなたは、あなたの三引数のコンストラクタを利用して、この

Node root = new Node("ROOT", lefty, righty); 

Node root = new Node("ROOT"); 

をこの行を変更したい効果を実現することができます。

ただし、root,leftyrightyのプレースメントを再検討することをおすすめします。それらはおそらくbTreeクラスで意図されています。また、各単語の最初の文字を大文字にする名前付けクラスを奨励する慣例もあります。 BinaryTree

+1

素晴らしいデバッグ。 +1は速い答えです。 – Juvanis

+0

だからわかりません。プログラム全体でノードの左右のプロパティを変更するにはどうすればよいですか?編集:気にしない、私はそれを得た! –

関連する問題