顺序队列
1.队头front删除 队尾rear插入;
2.“假溢出”:被删除的位置无法再利用,rear超出数组下界队列仍有储存空间;
3.循环队列(当rear、front到达储存空间最大时转为0):
出队判空 rear==front
入队判满(rear与front间的距离):
1) 设置标记tag;入队成功tag=1;出队成功tag=0;当front==rear&&tag==0时为满;
2)少用一个存储空间 front=(rear+1)%QueueSize;
4.注意:给定元素位置为第x个,在队列中front+x-1 ;
基本操作
typedef struct
{
int data[size];
int front,rear;
}que;
void init(que *s)
{
s->rear=s->front;
s->len=0;
}
int empty(que *s)
{
if(s->front==s->rear) return 1;
else return 0;
}
int push(que *s,int n)
{
if(s->rear==s->front) return 0;
s->data[s->rear]=n;
s->rear=(s->rear+1)%size;
s->len