请用C#编写一个类实现队列的功能,并编写一个测试类测试该队列的功能,一个队列有入排和出排动作,可以编写两个函数分别命名为EnQueue和DeQueue;还应该有一个属性Length:判断队列中的元素个数;一个打印的函数Print:将队列中所有的值进行打印输出。
时间: 2024-09-28 08:07:28 浏览: 2
在C#中,我们可以创建一个名为`Queue<T>`的类来实现队列功能,这里假设`T`代表队列中的元素类型。首先,我们需要实现基本的队列操作:
```csharp
using System;
using System.Collections.Generic;
public class Queue<T>
{
private List<T> items = new List<T>();
// 入队 EnQueue
public void EnQueue(T value)
{
items.Add(value);
}
// 出队 DeQueue
public T DeQueue()
{
if (items.Count == 0)
{
throw new InvalidOperationException("Queue is empty");
}
return items.RemoveAt(0);
}
// 队列长度 Length
public int Length => items.Count;
// 打印 Print
public void Print()
{
Console.WriteLine($"Queue elements: [{string.Join(", ", items)}]");
}
}
```
接下来,我们创建一个测试类`QueueTest`来验证上述队列的行为:
```csharp
public class QueueTest
{
public static void Main(string[] args)
{
Queue<int> queue = new Queue<int>();
// 测试入队
queue.EnQueue(1);
queue.EnQueue(2);
queue.EnQueue(3);
// 打印队列
queue.Print(); // 输出: Queue elements: [1, 2, 3]
// 测试出队
int firstElement = queue.DeQueue();
Console.WriteLine($"First element: {firstElement}"); // 输出: First element: 1
// 再次打印队列
queue.Print(); // 输出: Queue elements: [2, 3]
// 试图从空队列出队
try
{
queue.DeQueue();
}
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.Message); // 输出: Queue is empty
}
}
}
```
在这个例子中,`QueueTest`展示了如何创建`Queue`实例,添加元素、获取并移除元素以及检查队列是否为空。