队的基本操作

来源:互联网 发布:深圳网络推广招聘 编辑:程序博客网 时间:2024/05/16 15:35
/*队的基本操作 InitQueue(&Q)   //初始化队列 QueueEmpty(Q)   //判断队是否为空   EnQueue(&Q,&x)  //入队 DeQueue(&Q,&x)  //出队 GetHead(&Q,&x)  //读出队头 注:队是受限的线性表,无法读出队中的某一个元素 */#include<stdio.h>#define Maxsize 50typedef struct{    int Q[Maxsize];    int front,rear;}sqQueue;void InitQueue(sqQueue &Q){    Q.front = Q.rear =0}bool QueueEmpty(sqQueue Q){    if(Q.front == Q.rear)    return true;    else    return false;}bool EnQueue(sqQueue &P,int x){    if(P.rear%(Maxsize-1)==P.front)    {        return false;    }    else    {        P.Q[P.rear] = x;        return true;    }}bool DeQueue(sqQueue &P,int x){    if(P.rear%(Maxsize-1)==P.front)    {        return false;    }    else    {        x = P.Q[P.front];        P.front = (P.front+1)%Maxsize;        return true;    }}
原创粉丝点击