namespace Testmain
{
public class RoundRobinQueues
{
public int[] data;
public int front;
public int rear;
public int QueueSize;
public void InitQueue(int maxSize)
{
QueueSize = maxSize;
data = new int[maxSize];
front = 0;
rear = 0;
}
public int QueueLength()
{
return (rear - front + QueueSize) % QueueSize;
}
public void Enqueue(int item)
{
if ((rear + 1) % QueueSize == front)
{
Console.WriteLine("队列已满,无法添加元素!");
return;
}
data[++rear % QueueSize] = item;
}
public int Dequeue()
{
if (front == rear)
{
throw new InvalidOperationException("队列为空,无法移除元素!");
}
int item = data[front++ % QueueSize];
return item;
}
}
}