No, it doesn’t assume an array at all. It’s a data structure that maintains a totally ordered set with 3 operations:
insert(X), delete(X), label(X)
Where label extracts the label of element X (which had previously been inserted but not deleted). The label is a number from 0 to n-1, where n is the number of elements currently stored.
insert(X), delete(X), label(X)
Where label extracts the label of element X (which had previously been inserted but not deleted). The label is a number from 0 to n-1, where n is the number of elements currently stored.