2012-03-10 17 views
5

Aquí estoy tratando de practicar la fabricación de árboles binarios para que pueda hacer diferentes operaciones con ellos.JAVA: árboles binarios

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

¿Por qué recibo el error: Se esperaba un identificador en el root.left y root.right asignación?

Gracias!

Respuesta

3

Las instrucciones de asignación

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

no están permitidos en el nivel de clase. Se puede lograr el efecto que desea cambiar esta línea

Node root = new Node("ROOT"); 

a este

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

que se aprovecha de su constructor de tres argumentos.

Sin embargo, es posible que desee reconsiderar la ubicación de root, lefty y righty. Probablemente estén destinados en la clase bTree. Además, existe una convención que alienta a nombrar la clase capitalizando la primera letra de cada palabra, p. BinaryTree.

+1

buena depuración. +1 para una respuesta más rápida. – Juvanis

+0

Entonces no entiendo. ¿Cómo puedo cambiar las propiedades izquierda y derecha de un nodo a lo largo del programa? EDITAR: ¡No importa, lo tengo! –

Cuestiones relacionadas