public void tiefe(Tree r) {
if (r.root != null) {
tiefe(r.root.l);
System.out.println(r.root.v);
tiefe(r.root.r);
// System.out.println("Blatt:\t" + r.root.v);
}
}
class TNode {
public int v;
public Tree l, r;
public int t = 0;
public TNode(int v) {
this.v = v;
this.l = new Tree();
this.r = new Tree();
}
}
class Tree {
public TNode root = null;
public boolean isEmpty() {
return root == null;
}
public void insert(int element) {
if (isEmpty()) {
root = new TNode(element);
root.t = 1 + root.t;
} else if (element < root.v) {
root.l.insert(element);
root.l.root.t = 1 + root.t;
} else {
root.r.insert(element);
root.r.root.t = 1 + root.t;
}
}
public int countNodes(Tree r) {
if (r.root == null) {
return 0;
} else {
int count = 1;
count += countNodes(r.root.l);
count += countNodes(r.root.r);
return count;
}
}
public void tiefe(Tree r) {
if (r.root != null) {
tiefe(r.root.l);
System.out.println(r.root.v);
tiefe(r.root.r);
// System.out.println("Blatt:\t" + r.root.v);
}
}
Das will ich mal hart bezweifeln. Niemand würde so einen Quatsch in eine Aufgabenstellung schreiben. Nein wirklich, das ist ganz großer Mist. Zumal die Instanzmethoden der Klasse Tree auch überhaupt kaum mit der eigentlichen `this` Instanz arbeiten sondern immer unnötigerweise den Tree als Parameter bekommen.Die Klasse wurde nicht von mir geschrieben, die Klasse war für die Aufgabe gegeben
Naja so ist es halt in der Aufgabe, arbeite grade paar Altklausuren durch und es gibt noch paar ähnliche Aufgabe die genau so mit der Tree und Node Klasse aufgebaut sindDas will ich mal hart bezweifeln. Niemand würde so einen Quatsch in eine Aufgabenstellung schreiben. Nein wirklich, das ist ganz großer Mist.
Die Benennung hatte ich eben noch geändert, damit es nicht komplett identisch istAber ehrlich, die Benennung der Felder und auch der Methoden ist einfach unfassbar schlecht.
Aber die Methoden stammen ja von ihm so wie ich das verstanden habe. Das da also mit dem Parameter statt mit this gearbeitet wird, könnte er dann ja anpassen.Das will ich mal hart bezweifeln. Niemand würde so einen Quatsch in eine Aufgabenstellung schreiben. Nein wirklich, das ist ganz großer Mist. Zumal die Instanzmethoden der Klasse Tree auch überhaupt kaum mit der eigentlichen `this` Instanz arbeiten sondern immer unnötigerweise den Tree als Parameter bekommen.
Aber die Methoden stammen ja von ihm so wie ich das verstanden habe. Das da also mit dem Parameter statt mit this gearbeitet wird, könnte er dann ja anpassen.
Aber den Aufbau des Baumes sehe ich so auch zum ersten Mal. Ich kenne es eigentlich auch so, dass es nur einen Tree gibt, der dann Nodes hat. Ob sich da jemand gedacht hat, dass er da dann rechts und links wieder jeweils einen Baum haben will? Und daher jeweils wieder einen Tree genommen hat? Aber den wirklichen Sinn dahinter sehe ich nicht, denn das macht es ja nur unnötig komplexer und damit schwerer zu verstehen....
public int countNodes(Tree r) {
if (r.root == null) {
return 0;
} else {
int count = 1;
count += countNodes(r.root.l);
count += countNodes(r.root.r);
return count;
}
}
public void tiefe(Tree r) {
if (r.root != null) {
tiefe(r.root.l);
System.out.println(r.root.v);
tiefe(r.root.r);
// System.out.println("Blatt:\t" + r.root.v);
}
Ist jetzt nur 4 der Blattknoten?