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

本文关键字:数据结构 支持 随机 访问 队列 为什么不 | 更新日期: 2023-09-27 18:00:16

在阅读了《使用C#2.0对数据结构的广泛检查》之后,我了解到C#中的队列有一个内部数组,其中队列的元素按顺序存储,一个开始索引和一个结束索引。我不明白你为什么不能读写第n个元素。你所要做的就是return array[(n + start) % array.Length]。当然,如果n在这个范围内
这有时会很有用。

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

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

var element = q.ElementAt(index);

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

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