队列是一种遵循先进先出 (FIFO) 原则的数据结构。这意味着添加到队列中的第一个项目将是离开队列的第一个项目。在本文中,我将介绍如何在 .NET 中使用此数据结构。
为了说明队列的工作原理,请考虑一排等待服务的人,其中第一个加入队列的人是第一个被服务的人。同样,在处理队列时,元素在队列的后部(enqueue)添加,并从队列的前面(取消排队)中删除。
出于演示目的,我使用 .NET 创建了一个控制台应用程序。
队列数据结构提供了一系列可用于使用它的方法。这些是主要方法:
在下图中,您可以看到执行 and 操作时会发生什么:EnqueueDequeue
创建队列
要在 C# 中创建堆栈,您可以使用泛型类声明它,其中 是将存储在队列中的元素类型。例如,下面我将创建一个字符串元素的队列:Queue
Queue<string> queueDemo = new Queue<string>();
// or
var queueDemo = new Queue<string>();
向队列添加元素
在下面的代码中,我将向 :queueDemo
queueDemo.Enqueue("Julie");
queueDemo.Enqueue("Ana");
queueDemo.Enqueue("Bob");
对于每个操作,元素将添加到队列的后面:Enqueue
打印此堆栈的值时,输出如下:
Julie
Ana
Bob
从队列中删除第一个元素
该操作可用于从队列中删除第一个元素。例如:Dequeue
queueDemo.Dequeue();
执行操作时,将删除添加到队列中的第一个元素(“Julie”):Dequeue
在执行 Dequeue 方法后打印队列元素时,输出如下:
Ana
Bob
从队列中获取第一个元素
若要从队列中检索第一个元素,可以使用以下方法:Peek
var firstElement = queueDemo.Peek();
现在打印时,这是输出:firstElement
Ana
包含操作
若要检查队列中是否存在元素,可以使用该方法,并将要搜索的值作为参数传递:Contains
var containsBob = queueDemo.Contains("Bob");
var containsSofia = queueDemo.Contains("Sofia");
打印 和 时,这是输出:containsBobcontainsSofia
Queue contains Bob: True
Queue contains Sofia: False
检索队列中的元素数
若要获取队列中存在的元素数量,或检查队列是否为空,可以使用以下方法:Count
var numberOfElements = stackDemo.Count;
打印时,输出为:amountOfElements
numberOfElements: 2
使用队列的有用案例
队列数据结构有用的一些常见方案包括:
队列是一种线性数据结构,遵循 FIFO(先进先出)原则,在添加到队列的第一个元素必须是第一个要处理的元素的情况下非常有用。