Das Thema verkettete Listen ist einfach gewaltig, deshalb versuche ich grad einige Aufgaben zu lösen bzw. zu verstehen.
Es geht um einem Baum der einen Wurzelknoten enthält, und jeder Knoten(ausser Wurzel) ist einem Elternteil zugeordnet. Die Anzahl der Kinder ist nicht vorgegeben.
Die öffentliche Methode getLEafs soll alle Blätter in einer ArrayList liefern, die unterhalb des aktuellen Knotens gefunden wurden.
Ich soll jetzt die Hilfsmethode fillLeafs ergänzen, mit der sich die ArrayList befüllen lässt und zwar Rekursiv.
Mein Versuch:
Außerdem soll ich noch eine Methode hinzufügen, die dem aktuellen Knoten ein neues Elternteil einfügt. Das Elternteil von dem aktuellen Knoten, wird dann das Elternteil vom neuen.
Mein Versuch.
Es geht um einem Baum der einen Wurzelknoten enthält, und jeder Knoten(ausser Wurzel) ist einem Elternteil zugeordnet. Die Anzahl der Kinder ist nicht vorgegeben.
Java:
public class MyTreeNode<T> {
private MyTreeNode<T> parent;
private T data;
private ArrayList<MyTreeNode<T>> children = new ArrayList<MyTreeNode<T>>();
//Setter,Getter
public boolean isLeaf(){
return children.isEmpty();
}
public ArrayList<MyTreeNode<T>> getLeafs(){
ArrayList<MyTreeNode<T>> leafs = new ArrayList<>();
fillLeafs(leafs);
return leafs;
}
Die öffentliche Methode getLEafs soll alle Blätter in einer ArrayList liefern, die unterhalb des aktuellen Knotens gefunden wurden.
Ich soll jetzt die Hilfsmethode fillLeafs ergänzen, mit der sich die ArrayList befüllen lässt und zwar Rekursiv.
Mein Versuch:
Java:
private void fillLeafs(ArrayList<MyTreeNode<T>> leafs){
if (leaf.getChildren == null){
leafs.add(leaf.data);
return leaf;
}else{
return fillLeafs(leaf.getChildren);
}
Außerdem soll ich noch eine Methode hinzufügen, die dem aktuellen Knoten ein neues Elternteil einfügt. Das Elternteil von dem aktuellen Knoten, wird dann das Elternteil vom neuen.
Mein Versuch.
Java:
public void insertNewParent(MyTreeNode<T> newParent){
newParent.getChildren = this;
newParent.getParent = this.getParent;
this.getParent = newParent;
this.getParent.getChildren = newParent;
}