これまでに見つけたスキップ リストの実装はすべて、キーを使用し、それらを値に関連付けていました。しかし、私が必要としているのは、インデックス位置 i に値を挿入できるスキップ リストです。これにより、このインデックス i に続くすべての値に対して、インデックスを 1 つ増やしてクエリを実行できます。
ここに明確化のための小さな例があります:
//pseudocode
//let skipList sk be a list of ints, containing 5 elements.
//insert 6 at index 3
sk.insert(3, 6);
//insert 5 at index 3
sk.insert(3, 5);
//get index 4
int value = sk.get(4);
5 がインデックス 3 に挿入され、値 6 が 1 インデックス上に移動したため、現在value
は 6 になっているはずです。
スキップ リストを使用して、このようなデータ構造を構築することができます。こちらのインデックス可能なスキップリストを参照してください: http://en.wikipedia.org/wiki/Skip_list
しかし、実装が見つかりませんでした。このようなデータ構造を持つことは非常に便利です。たとえば、大量のリストに対して多数のランダムな挿入とアクセスがある場合などです。