Split trees are a technique for storing records with fixed frequency distributions. It was previously believed that no polynomial time algorithms to construct optimal representations of split trees were likely (B. A. Sheil, Median split trees: A fast lookup technique for frequently occurring keys, Comm. ACM (1978), p.949). In this paper we present an O(n5) algorithm to construct optimal binary split trees. Other efficient algorithms to construct suboptimal split trees are also discussed. The definition of split trees is later generalized to a larger class of trees so that we can compare several important classes of trees. © 1984.