TreeNode erstellen [Hilfe beim Konstruktor, Zeile 16]

JimmyKudo

Mitglied
[CODE lang="java" highlight="16, 31, 73"]
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Optional;

public abstract class TreeNode {

private Collection<TreeNode> children = new ArrayList<>();

private int numberOfSticksLeft;

TreeNode node;


// Der Konstruktor soll den ganzen Baum unter der neuen Node erstellen.
public TreeNode(int numberOfSticksLeft) {
this.numberOfSticksLeft = numberOfSticksLeft;

if (numberOfSticksLeft <= 0) {
// "There are no more sticks to pick up"
throw new IllegalArgumentException("numberOfSticksLeft: " + " less than 0");
}

}

/*
* Methode soll ein ein passendes Nachfolge- TreeNode -Objekt liefern.
* UnsupportedOperationException werfen.
*/

public TreeNode createChild(int numberOfSticksLeft) {
throw new UnsupportedOperationException();
}


/*
* Ist der Zug gültig, soll der richtige Typ TreeNode mit der restlichen Anzahl
* Hölzchen zurückgegeben werden.
*/

public TreeNode createChildChecked(int sticksToTake) {
if (sticksToTake > 3 || sticksToTake < 1) {
throw new IllegalArgumentException("invalid draw");
}

if (numberOfSticksLeft < 0) {
throw new IllegalArgumentException("numberOfSticksLeft: " + "less than 0");
}

// for (TreeNode t: children)
// System.out.println(t);
// children.forEach(c -> System.out.println(c));

return t;
}




public int getNumberOfSticksLeft() {
return numberOfSticksLeft;
}

/*
* die Bewertung, die ein Leaf hat, wenn dieser Knoten dessen
* Elternknoten ist.
*/
public int getChildLeafValue() {
throw new UnsupportedOperationException();
}

// Kindknoten dieses Knotens zurück.
public Collection<TreeNode> getSuccessors() {

for (TreeNode t : children) {
children.add(t);
}
this.children.addAll(children);
return children;
}

/*
* Kindknoten mit der groeßten Bewertung als
* Optional zurueck
*/

public Optional<Integer> getDrawWithHighestValueSuccessor() {

Optional<Integer> empty = Optional.empty();

return empty;
}
}
[/CODE]
 
Wie wäre es, wenn du uns etwas mehr an Informationen gibst? Was willst du erreichen? Was ist das Problem?
 
Hi, danke fuer deine Antwort. Ich weiß, wie man eine Ternäre Baumstruktur erstellt. Mit root; root.left, root.middle, root.right und dann geht es weiter mit root.left.left; root.left.middle; root.left.right; .... usw. Wie soll ich aber eine n-äre Baumstruktur erstellen nur unter Nutzung des Konstruktors, aber gleichzeitig ohne unteteilung der Nodes in left, middle, right, root, tail. Sprich: Der Konstruktor soll den ganzen Baum erstellen.
 

Neue Themen


Zurück
Oben