Jump to content

Succinct data structure

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by JyBy (talk | contribs) at 15:00, 18 March 2007 (Initial creation). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

In computer science, a succinct data structure for a given data type is a representation of the underlying combinatorial object that uses an amount of space “close” to the information theoretic lower bound together with algorithms that supports navigation and search operations on the data type “quickly”.

A natural example is the representation of a binary tree: an arbitrary binary tree on n nodes can be represented in bits while supporting a variety of operations on any node, which include finding its parent, its left and right child, and returning the size of its subtree, each in constant time. The number of different binary trees on nodes is . For large , this is about ; thus we need at least about bits to encode it. A succinct binary tree therefore would occupy only bits per node.

The concept was introduced by Jacobson [1], to encode bit vectors, (unlabeled) trees and planar graphs in space essentially equal to the information-theoretic lower bound, while supporting navigation on it efficiently.