Ich habe bisher folgende Klassen (siehe unten). Der Baum besitzte die Ordnungseigenschaft:
Alle Zahlen, die in Objekten des linken Teilbaums eines beliebigen Knotens
gespeichert sind, sind echt kleiner als die Zahl, die im Knoten selbst
gespeichert ist, und alle Zahlen im rechten Teilbaum sind echt groesser
als die Zahl des Knotens selbst.
Ich möchte jetzt den Baum sortiert ausgeben.(siehe Methode treewalk). Wie benutze ich in meine Metode die Methode operate zur Ausgabe?
Alle Zahlen, die in Objekten des linken Teilbaums eines beliebigen Knotens
gespeichert sind, sind echt kleiner als die Zahl, die im Knoten selbst
gespeichert ist, und alle Zahlen im rechten Teilbaum sind echt groesser
als die Zahl des Knotens selbst.
Ich möchte jetzt den Baum sortiert ausgeben.(siehe Methode treewalk). Wie benutze ich in meine Metode die Methode operate zur Ausgabe?
Java:
public class BinaryNode {
private BinaryNode father, leftSon, rightSon;
private int value;
public BinaryNode(int i) {
father = leftSon = rightSon = null;
value = i;
}
public boolean contains(int v){
if(this.value == v){
return true;
}
else if(this.value > v && this.leftSon !=null){
return this.leftSon.contains(v);
}
else if(this.value < v && this.rightSon !=null){
return this.rightSon.contains(v);
}
return false;
}
public void insert(int v){
if(this.value < v){
if(this.rightSon == null){
BinaryNode n = new BinaryNode(v);
n.father = this;
this.rightSon = n;
}
else{
this.rightSon.insert(v);
}
}
else if(this.value > v){
if(this.leftSon == null){
BinaryNode s = new BinaryNode(v);
s.father = this;
this.leftSon= s;
}
else{
this.leftSon.insert(v);
}
}
}
public void treewalk(NodeOperation f) {
if(this.value > leftSon.value){
leftSon.treewalk(f);
}
if(this.value < rightSon.value){
rightSon.treewalk(f);
}
}
}
interface NodeOperation {
public void operate(int v);
}
public class PrintNodeValue implements NodeOperation {
public void operate(int v) {
System.out.print(" - " + v);
}
}