Huffmann Codebaum erstellen?
Muss für eine Aufgabe einen Huffmann codebaum erstellen. Hier die Aufgabe : Erstellen Sie für den Text ‘sieben Fliegen fliegen flink’ den Huffman-Kode (mittels des Huffman- Kodebaums) und führen Sie damit die Kodierung des Textes durch. Wie viel Bits spart man bei dem Huffman-kodierten Text, wenn man annimmt, dass der unkodierte Text mit 8 Bit je Buchstabe dargestellt ist (beachten Sie auch die Leerzeichen zwischen den Wörtern).
Was mache ich falsch? Edit: die Anfangsknoten über den Buchstaben müssen nach der Häufigkeit sortiert werden.
2 Antworten
8 8 12
/ \ / \ / \
n i 4 4 e 6
/ \ / \ / \
2 2 g f _ l
/ \ / \
b s F k
Also ich komme schon auf einen ähnlichen Baum (Die Reihenfolge bei gleichwertiger Häufigkeit ist natürlich nicht eindeutig und natürlich können 0 und 1 ihre Rollen tauschen).
Essentiell für die Aufgabe sind ja die sich ergebenden Bitstringlängen, da ist die Varianz zwischen den Geschwistern in der Regel nicht von Bedeutung.
Fast: Du ornest nach der Häufigkeit, nimmst die Beiden Knoten mit der niedrigsten rel. Häufigkeit und machst sie zu Kindern eines neuen Knotens, dieser bekommt die Summe der Häufigkeiten.
Nun ordnest Du den neuen Knoten in die bestehende KnotenMenge ein und wiederholst, bis der Baum fertig ist.
Hierdurch gewähleistest Du, daß der Buchstabe mit größter Häufigkeit direkter Nachfolger der Wurzel ist, während jede mit niedrigster Blätter in der tiefsten Ebene sind.
Äääh, die größte Häufigkeit ist natürlich nicht zwingend direkter NAchfolger der Wurzel, sondern steht ihr am nächsten.
Ich würde mal oben am Blatt mit der Knotenliste anfangen udn dann zeilenweise nach unten aufbauen - auch wenn es mehr Platz benötigt.
Da passieren einem weniger Flüchtigkeitsfehler, wegen der Übersichtlichkeit.
hab ich gemacht, ich komme aber auf das gleiche Ergebnis.
Wieso steht da eigentlich ganz rechts zweimal der gleiche Buchstabe?
der zweite Buchstabe soll ein b sein.(Also s b k und F haben die Werte 1)
ja, das war auch meine Überlegung. Auf jeden Fall scheint, dass dann bei mir auch richtig zu sein(wenn man die Summen auf gleicher Ebene schreibt. Werde es mir merken.) Super vielen Dank.