一、队列
定义:队列是满足先进先出操作约束的线性表。
操作:
Queue CreatQueue( int MaxSize ) //生成长度为MaxSize的空队列;
int IsFullQ( Queue Q, int MaxSize ) //判断队列Q是否已满;
void AddQ( Queue Q, ElementType item ) //将数据元素item插入队列Q中;
int IsEmptyQ( Queue Q ) //判断队列Q是否为空;
ElementType DeleteQ( Queue Q ) //将队头数据元素从队列中删除并返回。
二、顺序储蓄方式
用数组表示:
const int MaxSize = 100; // 队列生长容量
typedef struck QueueNode* queue;
struck QueueNode{
int Data[MaxSize];
int rear;
int front;
}
循环队列:
两个指针,其中front指向队列第一个元素,rear指向队列的最后一个元素的下一个位置。
1、创建空队列
Queue CreatQueue(){
queue q = new QueueNode();
q->rear = 0;
q->front = 0;
return q;
}
2、判断队列是否已满
bool isFull(queue q){
if((q->rear+1)%MaxSize==q->front)
return true;
return false;
}