2012-03-10 262 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