JAVA: бинарные деревья - PullRequest
5 голосов
/ 10 марта 2012

Здесь я пытаюсь попрактиковаться в создании бинарных деревьев, чтобы я мог выполнять с ними различные операции.

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?

Спасибо!

1 Ответ

3 голосов
/ 10 марта 2012

Операторы присваивания

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

не допускаются на уровне класса. Вы можете добиться желаемого эффекта, изменив эту строку

Node root = new Node("ROOT");

к этому

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

, который использует ваш конструктор с тремя аргументами.

Однако вы можете пересмотреть размещение root, lefty и righty. Они, вероятно, предназначены для класса bTree. Кроме того, существует соглашение, которое поощряет именование классов с использованием заглавных букв первой буквы каждого слова, например BinaryTree.

...