English

Optimal Skeleton Huffman Trees Revisited

Data Structures and Algorithms 2020-03-25 v2

Abstract

A skeleton Huffman tree is a Huffman tree in which all disjoint maximal perfect subtrees are shrunk into leaves. Skeleton Huffman trees, besides saving storage space, are also used for faster decoding and for speeding up Huffman-shaped wavelet trees. In 2017 Klein et al. introduced an optimal skeleton tree: for given symbol frequencies, it has the least number of nodes among all optimal prefix-free code trees (not necessarily Huffman's) with shrunk perfect subtrees. Klein et al. described a simple algorithm that, for fixed codeword lengths, finds a skeleton tree with the least number of nodes; with this algorithm one can process each set of optimal codeword lengths to find an optimal skeleton tree. However, there are exponentially many such sets in the worst case. We describe an O(n2logn)O(n^2\log n)-time algorithm that, given nn symbol frequencies, constructs an optimal skeleton tree and its corresponding optimal code.

Keywords

Cite

@article{arxiv.2001.05239,
  title  = {Optimal Skeleton Huffman Trees Revisited},
  author = {Dmitry Kosolobov and Oleg Merkurev},
  journal= {arXiv preprint arXiv:2001.05239},
  year   = {2020}
}

Comments

12 pages, 3 figures, accepted to CSR 2020

R2 v1 2026-06-23T13:11:47.485Z