適切なC#データ構造を見つけるのに問題があります。PriorityListを探しています。次のものが必要です。
- 優先順位が指定されたアイテムは1つだけ
- 常にソートされたままである必要があります
- リストの最後にアイテムを追加する機能--prorityList.Add(item)
- 特定の優先度でアイテムを挿入する機能--priorityList.Add(3、item)
- 優先度を使用して任意の要素にアクセスする機能--priorityList[3]
- 特定の優先度でアイテムを削除する機能--priorityList.RemoveAt(3)
- アイテムが追加または削除されると、リストの残りの部分が適切に上下にシフトする必要があります。たとえば、3番目のアイテムが削除されると、4番目のアイテムが3番目のアイテムになり、5番目のアイテムが4番目のアイテムになります。
C#のSortedListは有望に見えましたが、既存の優先度での挿入や、特定の優先度での要素の削除(どちらの場合もリストが適切にシフトする)を処理できません。