2

Java にはDequeというクラスがあり、これに似たものを .NET (C#) で見つけたいと思います。

これが必要な理由は、コレクションの最後の項目を覗いてから、コレクションの最初の項目をデキューする必要があるためです。

ありがとう、AJラビンディラン。

4

5 に答える 5

7

PowerCollectionsには Deque クラス (および実績のある血統) があります。

于 2009-12-21T04:51:09.937 に答える
5

Deque として使用できる.NET のSystem.Collections.Generic.LinkedListコレクションを確認してください。二重にリンクされたリストです。

挿入・削除

  • AddFirst: 先頭に追加
  • AddLast: 末尾に追加
  • RemoveFirst: 最初から削除します。値を返しません。
  • RemoveLast:端から外します。値を返しません。

のぞき見:

  • First/Lastプロパティ。

    LinkedListNode<T>これらは実際の値ではなくa を返します。値を取得する.Valueには、最後に追加する必要があります。

于 2012-06-16T15:51:03.007 に答える
2

Deque<T>(リングバッファを使用)と同時ロックフリーの私の実装は次のConcurrentDeque<T>とおりです。

どちらのクラスも、両端キューの両端での Push、Pop、および Peek 操作をすべて O(1) 時間でサポートします。

于 2014-01-24T12:56:10.517 に答える
2

リストはあなたのためにそれをするべきです:

var l = new List<int>();
var last = l[l.Count - 1];
l.RemoveAt(0);
于 2009-12-21T04:50:04.180 に答える
0

このようなものは、別のSOの質問で触れられました。

人気のある答えはリンクリストで解決しているようで、EricLippertは彼自身のDeque実装を提案しました。

ですから、簡単な答えはノーだと思います。.NETにはそのような厳密なデータ構造は組み込まれていません。

HTH。

于 2009-12-21T04:55:20.970 に答える