構造体への値の任意の挿入を高速(O(N)より高速)にできるデータ構造(配列のような)を探しています。データ構造は、挿入された方法で要素を出力できる必要があります。これは、ランダムアクセスや削除が必要ないことを除けば、List.Insert()(すべての要素をシフトする必要があるため遅すぎる)のようなものに似ています。挿入は常に「配列」のサイズ内になります。すべての値は一意です。他の操作は必要ありません。
たとえば、Insert(x、i)がインデックスi(0-インデックス)に値xを挿入する場合。それで:
- Insert(1、0)は{1}を与えます
- Insert(3、1)は{1,3}を与えます
- Insert(2、1)は{1,2,3}を与えます
- Insert(5、0)は{5,1,2,3}を与えます
そして、最後に{5,1,2,3}を印刷できる必要があります。
私はC++を使用しています。