2012-03-10 263 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"); 

這個

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

這需要你的三個參數的構造函數的優勢。

但是,您可能要重新考慮root,leftyrighty的位置。它們可能用於bTree類。此外,還有一個鼓勵命名類大寫每個單詞的第一個字母的慣例,例如, BinaryTree

+1

不錯的調試。 +1以獲得更快的答案。 – Juvanis 2012-03-10 17:56:03

+0

所以我不明白。我如何在整個程序中更改節點的左右屬性?編輯:沒關係,我明白了! – 2012-03-10 18:01:30