《实用数据结构》 第4章 6.1题

//算法设计题.要求:设一个循环队列Queue,只有头指针front,不设尾指针,另设一个含有元素个数的记录器count,
//试写出相应的入队和出队的算法

#include 
#include 
#include 
using namespace std;

#define MAXLEN 10
#define Status int
#define datatype int 
#define OK 1
#define Y 1
#define N 0

typedef struct{
        datatype s[MAXLEN];
        int front;
        int count;
}SeqQueue;

//初始化
Status InitSeqQueue(SeqQueue &sq) 
{ 
        sq.front=-1;    //队首指针指向第一个元素的前一个位置
        sq.count=0;     //count置为0
        return OK;
}
//队满
Status IsFull(SeqQueue &sq)
{
        if(sq.count==MAXLEN) return Y;  //若队满,返回1
        else return N;                  //否则返回0
}
//队空
Status IsEmpty(SeqQueue &sq)
{
        if(sq.count==0) return Y;               //若队空,返回0
        else return N;
}
//入队
Status InQueue(SeqQueue &sq,datatype x)
{
        if(IsFull(sq)) return 0;        //队满
        srand(time(NULL));
        int a=rand()%10;

        sq.s[sq.count]=x;
        sq.count++;
        return OK;
}
//出队
Status OutQueue(SeqQueue &sq,datatype &x)
{
        if(IsEmpty(sq)) return 0;       //队空

        sq.front++;
        x=sq.s[sq.front];
        sq.count--;                     //队列元素减少1个
        return 1;
}
//显示队列元素
Status ShowQueue(SeqQueue sq)
{
        if(IsEmpty(sq)) return 0;       //若队空,返回0
        while(sq.count!=0)
        {
                cout<