编辑代码

//4.1.1 顺序队的定义
typedef struct
{
    ElemType data[MaxSize];
    int front,rear;                         //队首和队尾指针
}SqQueue;                                   //声明顺序队类型

//4.1.2 初始化队列
void InitQueue(SqQueue &qu)
{
    qu.front = qu.rear = 0;
}

//4.1.3 判断队列是否为空
int QueueEmpty(SqQueue qu)
{
    return(qu.front == qu.rear);
}

//4.1.4 进队
int EnQueue(SqQueue &qu,ElemType x)
{
    if((qu.rear + 1) % MaxSize == qu.front) //队满
        return 0;
    qu.rear = (qu.rear + 1) % MaxSize;
    qu.data[qu.rear] = x;                   //元素 x 进队
    return 1;
}

//4.1.5 出队
int DeQueue(SqQueue &qu,ElemType &x)
{
    if(qu.front == qu.rear)                 //队空返回 0
        return 0;
    qu.front = (qu.front + 1) % MaxSize;
    x = qu.data[qu.front];                  //元素 x 出队
    return 1;
}