Huffmann Codebaum erstellen?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
    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).


Axel324 
Beitragsersteller
 20.12.2019, 15:16

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.

0
KarlRanseierIII  20.12.2019, 15:24
@Axel324

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.

1

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.


KarlRanseierIII  20.12.2019, 13:00

Äää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.

0
Axel324 
Beitragsersteller
 20.12.2019, 13:19
@KarlRanseierIII

hab ich gemacht, ich komme aber auf das gleiche Ergebnis.

0
Axel324 
Beitragsersteller
 20.12.2019, 13:29
@Axel324

Wie würdest du denn das machen(stell doch einfach deine Zeichnung hier rein, vielleicht erkenne ich den Fehler)

0
Axel324 
Beitragsersteller
 20.12.2019, 13:35
@KarlRanseierIII

der zweite Buchstabe soll ein b sein.(Also s b k und F haben die Werte 1)

0