c#堆栈队列组合

Mat*_*Mat 23 c# queue stack containers

在C#中有一些已定义的通用容器,它可以同时用作Stack和Queue吗?我只是希望能够将元素追加到末尾或队列的前面

谢谢

Joã*_*elo 35

检查LinkedList类.

LinkedList<int> list = new LinkedList<int>();

list.AddFirst(1);
list.AddLast(2);
list.AddFirst(0);
Run Code Online (Sandbox Code Playgroud)


Eri*_*ert 13

这是我对不可变deque的实现:

http://blogs.msdn.com/ericlippert/archive/2008/02/12/immutability-in-c-part-eleven-a-working-double-ended-queue.aspx

请注意,这是一个不可变的双端队列.通常你可能会认为队列是你变异的东西:

queue.Enqueue(10);
Run Code Online (Sandbox Code Playgroud)

不可变队列始终保持不变; 当您添加新元素时,它会返回一个全新的队列,因此您将其用作:

queue = queue.Enqueue(10);
Run Code Online (Sandbox Code Playgroud)

如果你不再关心旧的价值.

  • StriplingWarrior,我不知道你在谈论什么.海报要求现有的通用容器,其作用类似于堆栈或队列.这样的容器被称为"deque",我提供了一个源代码的链接,用于实现这样的.究竟哪个部分问题没有得到解答? (3认同)
  • 尽管如此,这似乎没有回答他的问题. (2认同)