为什么队列数据结构不支持随机访问

时间:2016-08-05 10:19:58

标签: c# data-structures queue

在阅读An Extensive Examination of Data Structures Using C# 2.0之后,我理解C#中的队列有一个内部数组,其中队列的元素按顺序存储,一个起始索引和一个结束索引。我不明白你为什么不能读或写第n个元素。你所要做的只是return array[(n + start) % array.Length]。当然,如果n在范围内。
这有时很有用。

1 个答案:

答案 0 :(得分:0)

您可以使用ElementAt读取第n个元素:

var element = q.ElementAt(index);

由于这是IEnumerable扩展方法,您必须添加using System.Linq;

但是,你不能写第n个元素,因为那不是Queue的用途。这将打破队列的最重要特征,即先入先出。如果您可以在某个索引处插入项目,那么首先使用队列是没有意义的。