Thomas Darimont hat gesagt.:Fragen zu Übungen und Hausaufgaben aus dem Algorithmenbereich sind auch erlaubt ;-)
Das werde ich doch gleich mal ausnutzen. *g*
Also di Aufgabe besteht darin, einen einfachen Binärbaum zu implementieren. Der soll im Groben nur insert und preorder output beherrschen. Das problem ist, es gibt eine vorgefertigte Klasse, die ich als Datenstruktur verwenden soll. Das ist auch nicht unbedingt das Problem, ehr das Einfügen in eine solche. meine Kongrete Frage dazu ist: wenn ich durch den Baum gegangen bin, und meinen Key+Info eingefügt habe, wie setzte ich meinen "pointer" wieder auf die Wurzel?
Code:
public void insert(String key, Object info) {
while (wurzel != null) {
if (Integer.parseInt(wurzel.getKey()) > Integer.parseInt(key))
wurzel = wurzel.getLeft();
else
wurzel = wurzel.getRight();
}
wurzel = new TreeNode(key, info);
}
Dass der Key ein String ist, wurde schon vorgegeben, aber sollte nicht das Problem sein
Wurzel ist mein statisches Objekt aus der Klasse (fest vorgegeben):
Code:
public class TreeNode {
// Instance variables:
private String key;
private Object info; // Daten private ergibt mehr Aufwand(set- und
// get-Methoden)
private TreeNode left; // Referenzen auf Soehne
private TreeNode right;
// Simple constructors:
public TreeNode(String k, Object inf) {
this(k, inf, null, null);
}
public TreeNode(String k, Object inf, TreeNode l, TreeNode r) {
key = k;
info = inf;
left = l;
right = r;
}
// Accessor methods:
public String getKey() { // gibt den key of this TreeNode zurueck
return key;
}
public Object getInfo() { // gibt die Daten des Knotens zurueck
return info;
}
public TreeNode getLeft() { // gibt den linken Verkettungszeiger des Knotens
// zurueck
return left;
}
public TreeNode getRight() { // gibt den rechten Verkettungszeiger des
// Knotens zurueck
return right;
}
// Modifier methods: aendere Knoteninhalte und Pointer
public void setKey(String nk) {
key = nk;
}
public void setInfo(Object newinf) {
info = newinf;
}
public void setNextLeft(TreeNode NextLeft) {// setzt in this treenode den
// LeftPointer NextLeft
left = NextLeft;
}
public void setNextRight(TreeNode NextRight) {// setzt in this treenode
// den RightPointer
// NextRight
right = NextRight;
}
}
Ich hoffe ihr könnt mir weiterhelfen, ich habe schon mehere Varianten ausprobiert, aber keine hat das gewünschte ergebnis gebracht.
Ciao
Kodak
Zuletzt bearbeitet: