The rank and select operations over a string of length n from an alphabet of size σ have been used widely in the design of succinct data structures. In many applications, the string itself must be maintained dynamically, allowing characters of the string to be inserted and deleted. Under the word RAM model with word size w = Ω(lg n), we design a succinct representation of dynamic strings using nH0 +o(n)·lg σ+O(w) bits to support rank, select, insert and delete in O( lg n lg lg n ( lg σ lg lg n + 1)) time1 . When the alphabet size is small, i.e. when σ = O(polylog(n)), including the case in which the string is a bit vector, these operations are supported in O( lg n lg lg n ) time. Our data structures are more efficient than previous results on the same problem, and we have applied them to improve results on the design and construction of spaceefficient text indexes.
Meng He, J. Ian Munro