using System;
using System.Collections.Generic;
public class Queue<T>
{
private List<T> elements = new List<T>();
// 入队操作
public void Enqueue(T item)
{
elements.Add(item);
}
// 出队操作
public T Dequeue()
{
if (IsEmpty())
{
throw new InvalidOperationException("队列为空,不能执行出队操作。");
}
return elements.RemoveAt(0);
}
// 查看队首元素
public T Peek()
{
if (IsEmpty())
{
throw new InvalidOperationException("队列为空,无法查看队首元素。");
}
return elements[0];
}
// 检查队列是否为空
public bool IsEmpty()
{
return elements.Count == 0;
}
// 获取队列中的元素个数
public int Count
{
get { return elements.Count; }
}
// 清空队列
public void Clear()
{
elements.Clear();
}
// 打印队列中的元素
public void Print()
{
foreach (var item in elements)
{
Console.Write(item + " ");
}
Console.WriteLine();
}
}
// 示例使用
class Program
{
static void Main()
{
Queue<int> queue = new Queue<int>();
// 入队操作
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);
// 打印队列
queue.Print(); // 输出: 1 2 3
// 出队操作
int dequeuedItem = queue.Dequeue();
Console.WriteLine("出队元素: " + dequeuedItem); // 输出: 出队元素: 1
// 再次打印队列
queue.Print(); // 输出: 2 3
// 查看队首元素
Console.WriteLine("队首元素: " + queue.Peek()); // 输出: 队首元素: 2
// 检查队列是否为空
Console.WriteLine("队列是否为空: " + queue.IsEmpty()); // 输出: 队列是否为空: False
// 清空队列
queue.Clear();
// 再次检查队列是否为空
Console.WriteLine("队列是否为空: " + queue.IsEmpty()); // 输出: 队列是否为空: True
}
}
使用C#List实现一个队列数据结构类
最新推荐文章于 2024-02-21 11:03:37 发布