1

char一定のサイズ(ac )で次の操作ができる少量のアイテム(255未満)を保存したい:

  • 任意の位置に値を追加し、他のアイテムに以前の順序を保持させます。

  • アイテムを削除し、他のアイテムに順序を保持させます(上記のように)。

  • アイテムの次と前を検索します。

配列を使って、すべてのアイテムを前に移動して値を追加する関数を作成してみました。削除しても同じことが起こりますが、非効率的です。もちろん、ライブラリを使用する必要はありませんが、すぐに利用でき、無料である限り。

4

2 に答える 2

5
  • 配列-アクセス:O(1)、挿入:O(n)
  • 二重リンクリスト-アクセスO(n)、前/次:O(1)、挿入(*):O(1)
  • 子の数が格納されているRBツリー:すべての操作のO(log n)。

(*):位置(O(n))に到達するには、最初にリストをトラバースする必要があります。

注:いいえ、配列は乱雑ではありません。実装は非常に簡単です。また、ご覧のとおり、使用法によっては非常に効率的です。

要素の数、および配列の実装に対するあなたの意見に基づいて、配列に固執する必要があります。

于 2012-04-21T09:06:25.523 に答える
0

あなたはそれに二重リンクリストを使うことができます。ただし、配列の動作を維持したい場合(たとえば、インデックスによって要素にすばやくアクセスする( O(1)LLの場合は))、これは機能しません。O(n)

于 2012-04-21T09:03:44.180 に答える