日期:2014-05-18 浏览次数:21486 次
public class CircularQueue
{
private Int32 count ;
private Int32 length;
private Int32 font;
private Int32 rear;
private Int32[] elements;
public CircularQueue()
{
elements = new Int32[16];
length = 0;
font = 0;
rear = 0;
count = 16;
}
public CircularQueue(Int32 c)
{
elements = new Int32[c];
length = 0;
font = 0;
rear = 0;
count = c;
}
public Int32 Lenght
{
get
{
return length;
}
}
public Boolean EnQueue(Int32 i)
{
if (length == count)
return false;
if (length == 0)
{
elements[font] = i;
length++;
}
else
{
rear++;
length++;
if (rear == count)
rear = 0;
elements[rear] = i;
}
return true;
}
public Int32 DeQueue()
{
length--;
Int32 i = elements[rear];
rear--;
if (rear == -1)
rear = count - 1;
return i;
}
public Boolean IsEmpty()
{
if (length == 0)
return true;
else
return false;
}
public Boolean IsFull()
{
if (length == count)
return true;
else
return false;
}
}
static void Main(string[] args)
{
CircularQueue cq = new CircularQueue();
for (Int32 i = 0; i < 16; i++)
{
if(!cq.IsFull())
cq.EnQueue(i);
}
cq.DeQueue();
if (!cq.IsFull())
cq.EnQueue(16);
cq.DeQueue();
if (!cq.IsFull())
cq.EnQueue(17);
while(!cq.IsEmpty())
Console.WriteLine(cq.DeQueue());
}