c# 实现环形缓冲区
时间: 2023-11-16 08:05:27 浏览: 153
C#实现环形缓冲区可以使用数组来实现,具体步骤如下:
1.定义一个数组和两个指针front和rear,分别指向队列的头和尾。
2.在初始化时,将front和rear都指向0。
3.入队操作时,将元素插入到rear指向的位置,并将rear指针向后移动一位。如果rear指针已经到达数组的末尾,则将其指向数组的开头。
4.出队操作时,将front指向的元素取出,并将front指针向后移动一位。如果front指针已经到达数组的末尾,则将其指向数组的开头。
5.判断队列是否为空时,只需要判断front和rear是否相等即可。
6.判断队列是否已满时,只需要判断(rear+1)%数组长度是否等于front即可。
下面是C#实现环形缓冲区的代码示例:
```csharp
public class CircularBuffer<T>
{
private T[] buffer;
private int front;
private int rear;
public CircularBuffer(int size)
{
buffer = new T[size];
front = 0;
rear = 0;
}
public void Enqueue(T item)
{
buffer[rear] = item;
rear = (rear + 1) % buffer.Length;
}
public T Dequeue()
{
T item = buffer[front];
front = (front + 1) % buffer.Length;
return item;
}
public bool IsEmpty()
{
return front == rear;
}
public bool IsFull()
{
return (rear + 1) % buffer.Length == front;
}
}
```
阅读全文