一、栈,队列,线性表的区别
栈相对只有入栈和出栈操作,队列相对也只有入队和出队操作,相对于线性表而言,站和队列是操作受限的线性表。
栈:先进后出。用于调用函数,网页访问等等。
队列:先进先出,后进后出。当需要按顺序处理元素时。
二、用线性表实现队列
class SeqQueue<T> :IQueueDS<T>
{
private T[] data;
private int count;
private int front; //队首,等于第一个元素索引减一
private int rear; //队尾,等于最后一个元素索引
private int capacity; //容量
public SeqQueue(int size)
{
data=new T[size];
capacity = size ;
rear = -1;
front = -1;
}
public SeqQueue():this(10)
{
}
public int Count
{
get {
return count; }
}
/// <summary>
/// 入队
/// </summary>
/// <param name="item"></param>
public void Enqueue(T item)
{
if (count < capacity)
{
//如果队尾达到顶端
if (rear == capacity-1)
{
rear = 0;
}
else //如果队尾没有达到顶端
{
rear++; //队尾位置更新
<