📜  C#|队列类(1)

📅  最后修改于: 2023-12-03 15:00:16.389000             🧑  作者: Mango

队列类 (Queue) - C#

队列是计算机科学中的一个常用数据结构,它是一种线性数据结构,可以想象为一根管道,先进去的元素先出来,一般通过链式存储结构实现。在C#中,.NET框架提供了一个Queue类,用于封装这种数据结构。

使用
创建队列

创建一个新的队列对象时,可以使用无参数的构造函数或传入一个IEnumerable<T>初始化队列:

Queue<int> queue1 = new Queue<int>();
Queue<int> queue2 = new Queue<int>(new int[] {0, 1, 2, 3});
添加元素

可以使用Enqueue方法向队列中添加元素,该方法的时间复杂度为O(1),表示在队列末尾添加元素:

queue1.Enqueue(4);
queue1.Enqueue(5);
删除元素

可以使用Dequeue方法删除队列头部的元素,并返回该元素的值,该方法的时间复杂度为O(1),表示删除队列头部的元素:

var value = queue1.Dequeue(); // value = 0
访问元素

可以使用Peek方法返回队列头部的元素,但是不会从队列中移除该元素,该方法的时间复杂度为O(1),表示获取队列头部的元素:

var value = queue1.Peek(); // value = 1
判断队列是否为空

可以使用Count属性和IsEmpty方法分别获取队列元素个数和判断队列是否为空,它们的时间复杂度为O(1):

var count = queue1.Count; // count = 4
var isEmpty = queue1.IsEmpty(); // isEmpty = false
遍历队列

可以使用foreach循环遍历队列,也可以将其转换为一个数组后遍历:

foreach (var item in queue1)
{
    Console.WriteLine(item);
}

int[] array = queue1.ToArray();
for (int i = 0; i < array.Length; i++)
{
    Console.WriteLine(array[i]);
}
总结

本文简介了C#中的队列类Queue,展示了如何创建、添加、删除、访问和遍历队列。通过使用队列类,我们可以方便地实现FIFO(先进先出)的数据结构。详情请查看官方文档