先入先出队列
一个先入先出队列
看书的时候看到了这个,先把他写在这。作为一个归类吧。利用一个数组提供循环缓冲区来容纳数据。
class Queue
{
private int[] data = null;
private int head = 0, tail = 0;
private const int MaxSize = 100;
private int elementCount = 0;
public Queue()
{
data = new int[MaxSize];
}
public Queue(int size)
{
if(size > 0)
{
data = new int[size];
}
else
{
throw new ArgumentOutOfRangeException("size", size, "Must be greater than zero");
}
}
public void Enqueue(int item)
{
if (this.elementCount == this.data.Length)
{
throw new Exception("Queue full");
}
this.data[this.head] = item;
this.head++;
this.head %= this.data.Length;
this.elementCount++;
}
public int Dequeue()
{
if (this.elementCount == 0)
{
throw new Exception("Queue empty");
}
int queueItem = this.data[this.tail] ;
this.tail--;/* this.head++;*/
this.tail %= this.data.Length;
this.elementCount --;
return queueItem;
}
}
本文介绍了一种使用数组实现的循环缓冲区FIFO(先入先出)队列,包括队列的创建、元素的入队和出队操作。通过控制头尾指针和元素计数,确保了队列的高效运行。
910

被折叠的 条评论
为什么被折叠?



