Baumstruktur abspeichern

Gucky

Top Contributor
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:
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;
		}
	}
}
 

knilch

Bekanntes Mitglied
Hi,
Serialisierung macht Sinn, wenn der Zustand einer Instanz gespeichert werden soll.
Was ist denn der Grund, dass du die Struktur speichern musst?
 

anti-held

Bekanntes Mitglied
Wenn deine Klassen [c]CodeBaum[/c], [c]Knoten[/c] und [c]EndKnoten[/c] das Interface Serializable implementerien,
kannst du deinen Baum serialisieren bzw. abspeichern.
 

Gucky

Top Contributor
Es geht um den HuffMan Code. Ich möchte den CodeBaum in der komprimierten Datei abspeichern, um die Datei später wieder entschlüsseln zu können.

@AntiHeld
Wie die Serializierung machbar ist, kriege ich noch raus. Nur meinte ich, ob es bessere Methoden als diese gibt. :)
 

ARadauer

Top Contributor
Besser ist relativ.
Das ist die einfachste Möglichkeit.
Nicht die schnellste, nicht die menschen lesbarste, nicht die mit dem besten speicherverbrauch.

was wäre für dich besser?
 

Gucky

Top Contributor
Besser ist für mich die, die mir eine gute Note einhandelt. :D

Ich würde die mit dem wenigsten Speicherverbrauch bevorzugen, da ich ein Komprimierungsverfahren programmiere. Menschenlesbarkeit in gespeicherter Form brauche ich nicht.
Geschwindigkeit ist eher zweitrangig.
Einfachheit wäre noch ganz praktisch. Es sollte nicht den Ramen sprengen, muss aber auch nicht so super einfach sein.
Und der Baum sollte zusammen mit anderen Daten in einer Datei speicherbar sein.
 

Gucky

Top Contributor
Das Problem ist, dass es für eine Facharbeit ist und mein Lehrer Informatik vor hunderten von Jahren als Hilfswissenschaft hatte. Er hatte nicht mal OOP, geschweige denn Java. Und beim Entstehungsprozess helfen tut er mir auch nicht, da es eben für eine Facharbeit ist und er möchte, dass ich das Programm selber schreibe und dabei auch meine Ideen und Fehler dokumentiere.
 

Gucky

Top Contributor
Ich habe mir jetzt ein eigenes Format ausgedacht basierend auf der Reihenfolge, in der die Bytes eingelesen wurden. Ich denke, dass ist das Beste. Trotzdem danke an alle, die sich mit meiner Frage beschäftigt haben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Checkliste mit erweiterbaren Einträgen, Baumstruktur, wie Windows Explorer Navigation Allgemeine Java-Themen 2
C Erste Schritte Baumstruktur (dynamisch) Allgemeine Java-Themen 9
R Baumstruktur aus Term Allgemeine Java-Themen 34
S Baumstruktur/Datenstruktur in Datei speichern Allgemeine Java-Themen 23
Pfirsich TreeModel oder Baumstruktur Allgemeine Java-Themen 10
S Tiefe Kopie einer Baumstruktur als statische Methode Allgemeine Java-Themen 8
D Objekte in Baumstruktur Allgemeine Java-Themen 4
P Baumstruktur aus klassen/ Array Allgemeine Java-Themen 4
F Arraylist vollständig abspeichern und laden Allgemeine Java-Themen 1
G Excel File öffnen, in Zelle schreiben, abspeichern Allgemeine Java-Themen 6
J Variablen Mehrere int-variablen in txt abspeichern und danach wieder auslesen Allgemeine Java-Themen 1
J Input/Output Word Datei einlesen, verarbeiten und abspeichern Allgemeine Java-Themen 3
F String in OpenOffice Ods datei abspeichern? Allgemeine Java-Themen 8
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
D Variablen java.io.File zum vergleichen abspeichern Allgemeine Java-Themen 1
A Java - Beim Abspeichern Redundanzen vermeiden! Allgemeine Java-Themen 6
E Bild abspeichern Allgemeine Java-Themen 5
B Input/Output Inventar/Ausrüstung abspeichern (in DB?) Allgemeine Java-Themen 2
B Syntax-Highlighting abspeichern Allgemeine Java-Themen 7
R ArrayList byte[] abspeichern Allgemeine Java-Themen 4
I Abspeichern einer txt-Datei Allgemeine Java-Themen 7
L Abspeichern von OutputStream Allgemeine Java-Themen 6
W sql Query abspeichern selber variabele hilfe...? Allgemeine Java-Themen 16
X Anwendungsdaten abspeichern ? Allgemeine Java-Themen 12
T abspeichern und laden von objekten in JFrame Allgemeine Java-Themen 2
simcen X509Certificate abspeichern Allgemeine Java-Themen 2
R PDF einlesen und als Bild abspeichern Allgemeine Java-Themen 8
D readChar; wort abspeichern :( Allgemeine Java-Themen 5
L Wie kann ich eine HashMap abspeichern? Allgemeine Java-Themen 3
M Sound in datei abspeichern Allgemeine Java-Themen 3
N Graphics2D als Bild abspeichern Allgemeine Java-Themen 6
V Wie kann ich ein Bild in einem Zip Archiv abspeichern? Allgemeine Java-Themen 3
J Viel Text mit " im Quellcode abspeichern Allgemeine Java-Themen 7
S Projekt als Jar abspeichern! wie? Allgemeine Java-Themen 6
J Verzeichnis aus meinem JAR auslesen und abspeichern. Allgemeine Java-Themen 2
R Datei einlesen, Strings hinzufügen, abspeichern Allgemeine Java-Themen 4
S Text in eine txt-Datei schreiben und abspeichern! Allgemeine Java-Themen 8
N Graphik abspeichern Allgemeine Java-Themen 4
F Image als GIF oder JPEG abspeichern Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben