Tag zusammen,
ich habe Probleme bei einer Methode die ich gern rekursiv arbeiten lassen würde.
Ziel: Suche in einem binären Baum.
Problem: Der Rückgabewert.
"The Method getLeft() bzw. getRight() is undefined for the Type List<T>". Diese Aussage raubt mir meine Nerven
Ich will erreichen, dass die Folgenode der linken bzw. rechten Seite übergeben wird und dort weiterhin nach dem Wert x gesucht wird. Aber... da man immer nur einen Wert übergeben kann, scheint dies nicht zu funktionieren. Gibt es keine Möglichkeit?
Noch zur übrigen Struktur:
Ich habe eine Klasse Node, in der ich die Knoten definiere und die Methoden setze sowie eine Klasse List, in der der Baum konstruiert und zur Bearbeitung mit Methoden versehen wird.
ich habe Probleme bei einer Methode die ich gern rekursiv arbeiten lassen würde.
Ziel: Suche in einem binären Baum.
Problem: Der Rückgabewert.
Code:
public Node find (T x){
Node<T> f = root;
if (isEmpty())
return null;
else if (x.compareTo(f.getValue()) < 0){
f = root.getLeft();
return getLeft().find(x); // Problem
}
else if (x.compareTo(f.getValue()) > 0){
f = root.getRight();
return getRight(find(x)); // Problem
}
else {
f = root.getValue();
return f;
}
}
"The Method getLeft() bzw. getRight() is undefined for the Type List<T>". Diese Aussage raubt mir meine Nerven
Ich will erreichen, dass die Folgenode der linken bzw. rechten Seite übergeben wird und dort weiterhin nach dem Wert x gesucht wird. Aber... da man immer nur einen Wert übergeben kann, scheint dies nicht zu funktionieren. Gibt es keine Möglichkeit?
Noch zur übrigen Struktur:
Ich habe eine Klasse Node, in der ich die Knoten definiere und die Methoden setze sowie eine Klasse List, in der der Baum konstruiert und zur Bearbeitung mit Methoden versehen wird.
Code:
public class Node <T extends Comparable<T>>{
private T value;
private Node<T> left;
private Node<T> right;
public Node(T value, Node<T> left, Node<T> right){
this.value = value;
this.left = left;
this.right = right;
}
... //get & set Methoden
Code:
public class List <T extends Comparable<T>> implements Tree<T>{
Node<T> root;
Node<T> left;
Node<T> right;
public List(){
root = new Node<T>(null, null, null);
left = new Node<T>(null, null, null);
right = new Node<T>(null, null, null);
root.setLeft(left);
root.setRight(right);
}
... // andere Methoden