Engineering the LOUDS succinct tree representation

  • Authors:
  • O'Neil Delpratt;Naila Rahman;Rajeev Raman

  • Affiliations:
  • Department of Computer Science, University of Leicester, Leicester, UK;Department of Computer Science, University of Leicester, Leicester, UK;Department of Computer Science, University of Leicester, Leicester, UK

  • Venue:
  • WEA'06 Proceedings of the 5th international conference on Experimental Algorithms
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Ordinal trees are arbitrary rooted trees where the children of each node are ordered. We consider succinct, or highly space-efficient, representations of (static) ordinal trees with n nodes that use 2n + o(n) bits of space to represent ordinal trees. There are a number of such representations: each supports a different set of tree operations in O(1) time on the RAM model. In this paper we focus on the practical performance the fundamental Level-Order Unary Degree Sequence (LOUDS) representation [Jacobson, Proc. 30th FOCS, 549-554, 1989]. Due to its conceptual simplicity, LOUDS would appear to be a representation with good practical performance. A tree can also be represented succinctly as a balanced parenthesis sequence [Munro and Raman, SIAM J. Comput. 31 (2001), 762-776; Jacobson, op. cit.; Geary et al. Proc. 15th CPM Symp., LNCS 3109, pp. 159-172, 2004]. In essence, the two representations are complementary, and have only the basic navigational operations in common ( parent, first-child, last-child, prev-sibling, next-sibling). Unfortunately, a naive implementation of LOUDS is not competitive with the parenthesis implementation of Geary et al. on the common set of operations. We propose variants of LOUDS, of which one, called LOUDS++, is competitive with the parenthesis representation. A motivation is the succinct representation of large static XML documents, and our tests involve traversing XML documents in various canonical orders.