C# - Java 的双端队列

发布于 2024-08-15 17:17:36 字数 216 浏览 4 评论 0原文

在Java中,有一个名为Deque的类,并且我想在.NET(C#)中找到类似的东西。

我需要这个的原因是因为我需要查看集合中的最后一个项目,然后将集合中的第一个项目出队。

谢谢, AJ 拉文迪兰.

in Java, there's a class called Deque, and i would like to find something similar to this in .NET (C#).

The reason i need this, is because i need to peek the last item in the collection, and then dequeue the first one in the collection.

Thanks,
AJ Ravindiran.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

甜柠檬 2024-08-22 17:17:36

查看 .NET 的 System.Collections.Generic.LinkedList 集合,可以用作 Deque。这是一个双向链表。

插入/删除

浏览:

  • 第一个/最后 属性。

    这些返回一个LinkedListNode,而不是实际值。要获取值,您必须将 .Value 添加到末尾。

Check out .NET's System.Collections.Generic.LinkedList collection, which can be used as a Deque. It's a doubly linked list.

Insertion/Deletion

Peeking:

  • First/Last Properties.

    These Return a LinkedListNode<T>, not the actual value. To get the value you have to add .Value to the end.

还在原地等你 2024-08-22 17:17:36

PowerCollections 有一个 Deque 类(以及经过验证的血统)。

PowerCollections has a Deque class (and a proven pedigree).

心在旅行 2024-08-22 17:17:36

列表应该为你做到这一点:

var l = new List<int>();
var last = l[l.Count - 1];
l.RemoveAt(0);

List should do that for you:

var l = new List<int>();
var last = l[l.Count - 1];
l.RemoveAt(0);
天荒地未老 2024-08-22 17:17:36

这是我的 Deque (使用环形缓冲区)和并发无锁 ConcurrentDeque 的实现:

这两个类都支持双端队列两端的 Push、Pop 和 Peek 操作,所有操作都在 O(1) 时间内完成。

Here's my implementation of a Deque<T> (using a ring buffer) and a concurrent lock-free ConcurrentDeque<T>:

Both classes support Push, Pop and Peek operations on both ends of the deque, all in O(1) time.

紧拥背影 2024-08-22 17:17:36

在另一个SO问题中谈到了类似的事情。

流行的答案似乎是用链接列表来解决,Eric Lippert 提出了他自己的双端队列实现

所以我想简短的答案是否定的,.NET HTH 中没有内置如此严格的数据结构

Something like this was touched on in another SO question .

The popular answer seemed to be settling with a linked list, and Eric Lippert suggested his own Deque implementation.

So I guess the short answer is no, there is no such strict data structure built-in in .NET

HTH.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文