Huffman Code

Mit dem Huffman Code kann man effizient Daten kodieren um in vielen Fällen Speicher zu sparen.

Beispiel eines Huffman Codes

Huffman Baum

Ausgangswort: PANAMAKANAL

Häufigkeitsverteilung

BuchstabeANPMKL
Wahrscheinlichkeit

Huffman Baum

Wurzel

0

A

1

0

N

1

0

0

P

1

M

1

0

1

K

L

Wie erstellt man einen Huffman Baum?

  1. Erstelle Blattknoten aus jedem Zeichen der zu kodierenden Nachricht, wobei jedes Zeichen nur einmal mit den verschiedenen Häufigkeiten des Auftretens der Zeichen berücksichtigt wird, die nach Priorität geordnet werden sollen, wobei die Zeichen mit den niedrigsten Häufigkeiten Vorrang haben.
  2. Extrahiere die beiden Knoten mit der niedrigsten Gewichtung in aufsteigender Reihenfolge der Häufigkeit, d. h. der Knoten mit der niedrigsten Häufigkeit muss zuerst extrahiert werden.
  3. Erstelle einen neuen internen Knoten mit einer Häufigkeit, die der Summe der Häufigkeiten dieser beiden Knoten entspricht. Definiere den ersten extrahierten Knoten als den linken Sohn dieses Knotens und den zweiten Knoten als den rechten Sohn. Füge den neu erstellten Knoten zur Liste der verbleibenden Knoten hinzu.
  4. Wiederhole die Schritte 2 und 3, bis du durch alle Knoten gegangen bist, die du in Schritt 1 erhalten hast. Der verbleibende Knoten ist die Wurzel des Baumes und die Konstruktion ist abgeschlossen.

Weitere Beispiele