2012-03-10 16 views
5

Tutaj próbuję ćwiczyć tworzenie drzewek binarnych, dzięki czemu mogę wykonywać z nimi różne operacje.JAVA: drzewa binarne

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; 
} 

Dlaczego pojawia się błąd: Identyfikator oczekiwany przy przypisaniu root.left i root.right?

Dzięki!

Odpowiedz

3

Sprawozdania przypisania

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

nie są akceptowane na poziomie klasy. Można osiągnąć żądany efekt zmieniających tę linię

Node root = new Node("ROOT"); 

do tego

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

który wykorzystuje konstruktora trzech argumentów.

Możesz jednak ponownie rozważyć umieszczenie root, lefty i righty. Prawdopodobnie są one przeznaczone dla klasy bTree. Istnieje również konwencja, która zachęca klasę nazw do wielkich liter pierwszej litery każdego słowa, np. BinaryTree.

+1

ładne debugowanie. +1 dla szybszej odpowiedzi. – Juvanis

+0

Więc nie rozumiem. Jak mogę zmienić właściwości lewego i prawego węzła w całym programie? EDYCJA: Nieważne, mam to! –