-- -- Types.hs -- -------------------------------------------------------------------------------- module Types ( HTree(HLeaf, HNode), Bit(L,R), HCode, Table, htext ) where -- Huffman-Baum ---------------------------------------------------------------- data HTree = HLeaf Char Int -- repraesentierter Buchstabe, Haeufigkeit | HNode Int HTree HTree -- akkumulierte Haeufigkeit, li./re. Teilbaum deriving Show data Bit = L -- Links | R -- Rechts deriving Show type HCode = [Bit] -- Code-Sequenz -- Huffman-Tabelle ------------------------------------------------------------- type Table = [ (Char, HCode) ] -- ordnet jedem Buchstaben einen -- Huffman-Code zu -- (wird aus Huffman-Baum erzeugt) -- Referenztext ---------------------------------------------------------------- htext :: String htext = "Dieser Text dient der Ermittlung der typischen " ++ "Buchstabenhaeufigkeiten in einem Text. Ein " ++ "moeglichst langer Text ist daher von Vorteil. " ++ "Die Huffman-Kodierung ist eine verlustlose Kompressionsmethode, " ++ "bei der haeufig vorkommende Buchstaben durch kuerzere Bitfolgen " ++ "dargestellt werden als seltene. Anhand eines Referenztextes werden "++ "die Haeufigkeiten der darin vorkommenden Zeichen bestimmt."