Theoretical Computer Science ( IF 0.747 ) Pub Date : 2020-11-20 , DOI: 10.1016/j.tcs.2020.11.025 Shmuel T. Klein; Jakub Radoszewski; Tamar C. Serebro; Dana Shapira
A skeleton Huffman tree is a Huffman tree from which all full subtrees of depth have been pruned. Skeleton Huffman trees are used to save storage and enhance processing time in several applications such as decoding, compressed pattern matching and wavelet trees for random access. A reduced skeleton tree prunes the skeleton Huffman tree further to an even smaller tree. The resulting more compact trees can be used to further enhance the time and space complexities of the corresponding algorithms. However, it is shown that the straightforward ways of basing the constructions of a skeleton tree as well as that of a reduced skeleton tree on a canonical Huffman tree does not necessarily yield the least number of nodes. New algorithms for achieving such trees are given.