# BinaryTree



## HelloWorld__ (5. Feb 2022)

Hallo ich soll einen balancierten Binärbaum erstellen mit der Klasse
public class BinaryTree, mit einer Instanzvariable private IntegerNode root
und einem Konstruktor, welcher ein Array aus Integer Werten als Parameter übernimmt und daraus einen balancierten binären Baum erzeugt. Für die Speicherung der Knoten kann man die vorgegebene Klasse IntegerNode verwenden, diese muss man aber über getter und setter Methoden ansprechen. Meine Frage folgt nach dem Code


```
public class IntegerNode {
    private int value;
    private IntegerNode left;
    private IntegerNode right;

    public void setRightChild(IntegerNode right) {
        this.right = right;
    }

    public void setLeftChild(IntegerNode left) {
        this.left = left;
    }

    public IntegerNode getRightChild() {
        return this.right;
    }

    public IntegerNode getLeftChild() {
        return this.left;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public int getValue() {
        return this.value;
    }

    public IntegerNode(int value) {
        this.value = value;
        this.right = null;
        this.left = null;
    }
}
```

Das hab ich bisher:


```
public class BinaryTree {
    private IntegerNode root;

    public BinaryTree()
    {
        root = null;
    }
    public BinaryTree(int value)
    {
        this.value = value;
    }
    public void insert(int value)
    {
        if(value < getValue()) {
            if (getLeftChild() == null) {
                setLeftChild(new BinaryTree(value));
            } else {
                getLeftChild().insert(value);
            }
        } else {
            if (getRightChild() == null) {
                setRightChild(new BinaryTree(value));
            } else {
                getLeftChild().insert(value);
            }
            }
        }
    public static void main(String [] args){
        ...
    }
```

Ich weiß aber nicht wie genau es weiter geht und ob das mit getter und setter ansprechen so passt und wie die main mehtode dann aussieht


----------



## mihe7 (5. Feb 2022)

Was soll die Instanzvariable value in Deinem BinaryTree? Ein BinaryTree besteht aus Knoten, die Werte speichern und sonst (ersmal) nix.

In Zeile 9 müsste es demnach lauten: `root = new IntegerNode(value);`.

Getter und Setter kannst Du über eine Variable ansprechen, z. B. `root.getValue()`



HelloWorld__ hat gesagt.:


> wie die main mehtode dann aussieht


Das wissen wir nicht, wie Deine main-Methode aussehen soll. Wir wissen ja noch nicht mal, ob Du eine haben sollst.

Du könntest allerdings eine main-Methode schreiben, die z. B. einen Baum erstellt und in diesen Elemente einfügt. Dann könntest Du prüfen, ob die Elemente eingefügt wurden usw.


----------

