4

適切なC#データ構造を見つけるのに問題があります。PriorityListを探しています。次のものが必要です。

  • 優先順位が指定されたアイテムは1つだけ
  • 常にソートされたままである必要があります
  • リストの最後にアイテムを追加する機能--prorityList.Add(item)
  • 特定の優先度でアイテムを挿入する機能--priorityList.Add(3、item)
  • 優先度を使用して任意の要素にアクセスする機能--priorityList[3]
  • 特定の優先度でアイテムを削除する機能--priorityList.RemoveAt(3)
  • アイテムが追加または削除されると、リストの残りの部分が適切に上下にシフトする必要があります。たとえば、3番目のアイテムが削除されると、4番目のアイテムが3番目のアイテムになり、5番目のアイテムが4番目のアイテムになります。

C#のSortedListは有望に見えましたが、既存の優先度での挿入や、特定の優先度での要素の削除(どちらの場合もリストが適切にシフトする)を処理できません。

4

2 に答える 2

8

List<T>使用する場合に要求したすべてのものを提供する標準を使用する場合priority == index.

于 2012-07-07T06:27:54.810 に答える
0

SortedDictionary<TKey, TValue>キーが優先される場所を使用するのはどうですか?すべての要件に完全に適合するわけではなく、優先順位を一意にするかどうかは明確ではありません。優先順位を一意にしたくない場合LinkedList<T>は、おそらく最善の策です。

于 2012-07-07T06:37:17.920 に答える