私は以下を提供するデータ構造を探しています:
- 前面に要素を追加する
- 2つの要素を交換する
- 要素の削除
- (最後の位置ではなく)要素を追加するとき、他の要素は(キューのように)スリップバックする必要があります
- すべての要素へのアクセス
- ジェネリックはいいのですが、必須ではありません
MSDNで見つけたデータ構造が私の要求を満たしていません
List
スワップ方式を提供しLinkedList
ない- でそれを行うことはできますが
ArrayList
、前の位置に要素を追加するときは、その恐ろしい非効率性を推測します(後ろのすべての要素をコピーして再読み込みする必要があるため) HashTable
注文を提供しませんQueue
スワップ、ランダムアクセス、..を提供しStack
ないでください。
独自のデータ構造を作成することもできますが、.NETライブラリが非常に大きいため、車輪の再発明はしたくありません。
編集:
process-priority-schedulerのような同様のものを提供するデータ構造が必要です。最初のエントリの優先度が最も高く、最後のエントリの優先度が最も低くなります。要素のプロパティを変更する(スワッピング)か、要素を完全に削除する(削除)必要がある場合があります。最近追加した要素の優先度が最も高いはずです(そのため、前の位置に追加します)