using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{ //循环队列的顺序存储
public class Queue
{
public int front { get; set; }
public int rear { get; set; }
public string[] data { get; set; }
public int maxsize;
///
/// 构造函数,初始化队列长度
///
///
public Queue(int maxsize)
{
this.front = 0;
this.rear = 0;
this.maxsize = maxsize;
this.data = new string[maxsize];
}
///
/// 返回队列长度
///
///
public int QueueLength()
{
return (this.rear - this.front + maxsize) % maxsize;
}
///
/// 插入队列节点
///
///
public void InsertQueueNode(string queueNode)
{
if ((this.rear + 1) % this.maxsize == this.front)
return;
this.data[this.rear] = queueNode;
this.rear = (this.rear + 1) % this.maxsize;
}
///
/// 删除一个节点
///
public void DeleteQueueNode()
{
if (this.rear == this.front)
{
return;
}
this.front = (this.front + 1) % this.maxsize;
}
///
/// 显示队列
///
public void ShowQueue()
{
if (this.rear == this.front)
{
return;
}
while((this.front+1)%this.maxsize!=this.rear){
Console.WriteLine(this.data[this.front]);
this.front=(this.front+1)%this.maxsize;
}
Console.WriteLine(this.data[this.front]);
}
}
//测试
class Program
{
static void Main(string[] args)
{
Queue queue = new Queue(8);
queue.InsertQueueNode("0");
queue.InsertQueueNode("1");
queue.InsertQueueNode("2");
queue.InsertQueueNode("3");
queue.InsertQueueNode("4");
queue.InsertQueueNode("5");
// queue.DeleteQueueNode();
queue.ShowQueue();
Console.ReadKey();
}
}
}