私は構造に値を任意に挿入する高速(O(N)より速い)を可能にするデータ構造(配列のようなもの)を探しています。データ構造は、要素を挿入された形で印刷することができなければなりません。これは、List.Insert()のようなものです(ランダムにアクセスまたは削除する必要がないことを除いて、すべての要素を移動するには遅すぎます)。挿入は常に '配列'のサイズ内になります。すべての値は一意です。他の操作は必要ありません。挿入のための効率的なデータ構造
たとえば、Insert(x、i)が値xをインデックスi(0インデックス)に挿入するとします。その後:
- インサート(1、0){1}
- 挿入与える(3、1){1,3}
- 挿入与える(2、1){1,2,3}を与えます
- インサート(5、0){5,1,2,3}
を与え、それが最後に{5,1,2,3}をプリントアウトできるようにする必要があります。
私はC++を使用しています。
"array like"はどういう意味ですか? – juanchopanza
データ構造をトラバースする際の複雑さに関する要件はありますか? –
@juanchopanza私は表面上を意味する、それは線形配列のように動作する必要があります。それは私がそれらを挿入した方法で要素を保持する必要があります。 – Peter