1. Queue 类简介
Queue 是 C# 中用于实现先进先出(FIFO)数据结构的类。从队列的开头添加元素称为 入队,从队列的末尾移除元素称为 出队。
以下是 Queue 类的一些重要方法:
Enqueue: 将元素添加到队列的末尾
Dequeue: 移除队列开头的元素
Peek: 返回队列开头的元素
Clear: 清空队列中的所有元素
Count: 返回队列中元素的数量
2. Queue 类中的入队
2.1 Enqueue 方法
Enqueue 方法用于将元素添加到队列的末尾。下面是一个简单的示例,其中值 1、2 和 3 被添加到队列中:
Queue myQueue = new Queue();
myQueue.Enqueue(1);
myQueue.Enqueue(2);
myQueue.Enqueue(3);
在上面的示例中,Queue 类的实例 myQueue 创建了一个空的队列,接着使用 Enqueue 方法添加了元素 1、2 和 3 到队列中。
2.2 Peek 方法
Peek 方法返回队列开头的元素。使用 Peek 方法时,不会从队列中移除任何元素。下面是一个示例,其中 Peek 方法用于返回队列中的第一个元素:
int first = (int)myQueue.Peek();
Console.WriteLine(first); // 输出 1
在上面的示例中,首先使用 Peek 方法获取队列中的第一个元素,并将其存储在变量 first 中。然后将 first 输出到控制台上。
3. 双端队列
除了 Queue 类之外,C# 还提供了一个双端队列实现,称为 Deque。Deque 支持从队列的两端添加或移除元素,因此它也被称为 双向队列 或 双端队列。
3.1 创建 Deque 实例
Deque 实例可以通过直接实例化 Deque 类来创建。下面是一个示例,其中创建了一个名为 myDeque 的 Deque 类实例:
Deque myDeque = new Deque();
3.2 将元素添加到 Deque 中
Deque 类支持在队列头和队列尾添加元素。下面是一个示例,展示了如何在 Deque 的开头和结尾添加元素:
myDeque.AddFirst(1); // 添加元素到 Deque 的开头
myDeque.AddLast(2); // 添加元素到 Deque 的末尾
在上面的示例中,AddFirst 方法用于将值 1 添加到 Deque 的开头,AddLast 方法用于将值 2 添加到 Deque 的末尾。现在,myDeque 中的元素为 1 和 2。
3.3 从 Deque 中移除元素
Deque 类同样支持从队列头和队列尾移除元素。下面是一个示例,展示了如何从 Deque 的开头和末尾移除元素:
myDeque.RemoveFirst(); // 从 Deque 的开头移除元素
myDeque.RemoveLast(); // 从 Deque 的末尾移除元素
在上面的示例中,RemoveFirst 方法从 Deque 的开头移除元素,RemoveLast 方法从 Deque 的末尾移除元素。现在,myDeque 中没有任何元素了。
3.4 Peek 方法
Deque 中的 Peek 方法与 Queue 中的 Peek 方法非常类似,都用于返回队列或 Deque 的开头元素。下面是一个示例,展示了如何使用 Peek 方法获取 Deque 的开头元素:
int first = (int)myDeque.PeekFirst(); // 获取 Deque 的开头元素
Console.WriteLine(first); // 输出 1
在上面的示例中,PeekFirst 方法用于返回 Deque 的开头元素,将其存储在变量 first 中,然后输出到控制台上。
4. 结论
Queue 和 Deque 是 C# 中用于实现先进先出(FIFO)和双端队列数据结构的类。它们都具有 Enqueue、Dequeue 和 Peek 方法,用于添加、移除和访问队列或 Deque 中的元素。deque 还支持在队列的两端添加或移除元素。如果您需要实现先进先出或双端队列的数据结构,请使用这些类。