Huffman coding: Difference between revisions
m
→{{header|Julia}}
Line 3,221:
=={{header|Julia}}==
<lang julia>
abstract type HuffmanTree end
mutable struct HuffmanLeaf <: HuffmanTree
Line 3,245 ⟶ 3,246:
d
end
function huffmantree(ftable::Dict)
trees::Vector{HuffmanTree} = [HuffmanLeaf(ch, fq) for (ch, fq) in ftable]
while length(trees) > 1
sort!(trees, lt = (x, y) -> x.freq < y.freq, rev = true)
least = pop!(trees)
nextleast = pop!(trees)
Line 3,257 ⟶ 3,258:
end
printencoding(lf::HuffmanLeaf, code
function printencoding(nd::HuffmanNode, code
printencoding(nd.left, code)
printencoding(nd.right, code)
end
Line 3,294 ⟶ 3,295:
a 3 1100
i 3 1101
</pre>
|