  The successor and predecessor problem consists of obtaining the closest value
in a set of integers, greater/smaller than a given value. This problem has
interesting applications, like the intersection of inverted lists. It can be
easily modeled by using a bitvector of size $n$ and its operations rank and
select. However, there is a practical approach, which keeps the best
theoretical bounds, and allows to solve successor and predecessor more
efficiently. Based on that technique, we designed a novel compact data
structure for bitvectors with $k$ runs that achieves access, rank, and
successor/predecessor in $O(1)$ time by consuming space $O(\sqrt{kn})$ bits. In
practice, it obtains a compression ratio of $0.04\%-26.33\%$ when the runs are
larger than $100$, and becomes the fastest technique, which considers
compressibility, in successor/predecessor queries. Besides, we present a
recursive variant of our structure, which tends to $O(k)$ bits and takes
$O(\log \frac{n}{k})$ time.
