Working with Graphs & Trees
What type of tree is being constructed for data compression?
function buildHuffmanTree(frequencies) {
const pq = new PriorityQueue();
for (let [char, freq] of Object.entries(frequencies)) {
pq.enqueue({ char, freq }, freq);
}
while (pq.size() > 1) {
const left = pq.dequeue();
const right = pq.dequeue();
const parent = {
freq: left.freq + right.freq,
left,
right
};
pq.enqueue(parent, parent.freq);
}
return pq.dequeue();
}