Hallo liebes Java Forum,
ich programmiere gerade für die Schule ein Programm, in dem ich einen selbst geschriebenen Objektbaum abspeichern muss. Kann ich das mit der Serialisierung machen oder gibt es da bessere Möglichkeiten?
So sieht der Baum aus:
ich programmiere gerade für die Schule ein Programm, in dem ich einen selbst geschriebenen Objektbaum abspeichern muss. Kann ich das mit der Serialisierung machen oder gibt es da bessere Möglichkeiten?
So sieht der Baum aus:
Java:
public class CodeBaum {
private Knoten ersterKnoten;
private Knoten letzterKnoten;
public CodeBaum(){
ersterKnoten = null;
}
public void add(byte wert, boolean letzter){
EndKnoten nEndKnoten = new EndKnoten(wert);
if (ersterKnoten == null){
ersterKnoten = new Knoten();
ersterKnoten.setEinsKnoten(nEndKnoten);
letzterKnoten = ersterKnoten;
} else if (!letzter){
Knoten nKnoten = new Knoten();
nKnoten.setEinsKnoten(nEndKnoten);
letzterKnoten.setNullKnoten(nKnoten);
letzterKnoten = nKnoten;
} else {
letzterKnoten.setNullKnoten(nEndKnoten);
}
}
public byte getCodeByte(boolean[] codierung) throws KeinWertVorhandenException{
if (ersterKnoten == null) throw new KeinWertVorhandenException();
Knoten itKnoten = ersterKnoten;
for (int i=0;i<codierung.length;i++){
itKnoten = itKnoten.getNext(codierung[i]);
if (itKnoten == null) throw new KeinWertVorhandenException();
}
EndKnoten eK = (EndKnoten) itKnoten;
return eK.getWert();
}
private class Knoten{
private Knoten nullKnoten;
private Knoten einsKnoten;
public Knoten(){
nullKnoten = null;
einsKnoten = null;
}
public Knoten getNext(boolean paramBoolean){
if (paramBoolean) return einsKnoten;
else return nullKnoten;
}
public void setNullKnoten(Knoten nullKnoten){
this.nullKnoten = nullKnoten;
}
public void setEinsKnoten(Knoten einsKnoten){
this.einsKnoten = einsKnoten;
}
}
private class EndKnoten extends Knoten{
private final byte wert;
public EndKnoten(byte wert){
this.wert=wert;
}
public byte getWert(){
return wert;
}
}
}