1. A method for creating an ordered data structure comprising a plurality of data elements, the method comprising: a. arranging the plurality of data elements in an order; b. generating a plurality of keys for the plurality of ordered data elements, the plurality of keys forming an ordered sequence; c. associating one or more keys of the plurality of keys with the plurality of ordered data elements, each of the one or more keys being associated with at least one of the plurality of ordered data elements, wherein the one or more keys maintain the order between the plurality of ordered data elements; and d. creating the ordered data structure using the plurality of ordered data elements and the one or more keys.