A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
12
Task/Huffman-coding/Haskell/huffman-coding-3.hs
Normal file
12
Task/Huffman-coding/Haskell/huffman-coding-3.hs
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import qualified Data.Set as S
|
||||
|
||||
htree :: (Ord t, Num t, Ord a) => S.Set (t, HTree a) -> HTree a
|
||||
htree ts | S.null ts_1 = t1
|
||||
| otherwise = htree ts_3
|
||||
where
|
||||
((w1,t1), ts_1) = S.deleteFindMin ts
|
||||
((w2,t2), ts_2) = S.deleteFindMin ts_1
|
||||
ts_3 = S.insert (w1 + w2, Branch t1 t2) ts_2
|
||||
|
||||
huffmanTree :: (Ord w, Num w, Ord a) => [(w, a)] -> HTree a
|
||||
huffmanTree = htree . S.fromList . map (second Leaf)
|
||||
Loading…
Add table
Add a link
Reference in a new issue