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();
}
Next Question (21/21)