|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 圣狄雅哥 于 2018-2-8 21:13 编辑
#define MaxQsize 10
typedef int Status
typedef int ElemType;
typedef struct{
ElemType *base;
int front;
int rear;
Status tag;
}Queue;
Status InitQueue(Queue*q)
{
q->base=(ElemType*)malloc(MaxQsize*sizeof(ElemType));
if(!q->base) return FALSE;
q->front=q->rear=0;
q->tag=0;
return OK;
}
Status EnQueue(Queue *q,ElemType e)
{
if(q->front==q->rear&&q->tag) return FALSE;
else{
q->base[q->rear]=e;
q->rear=(q->rear+1)%MaxQsize;
if(q->rear==q->front)
q->tag=1;
}
return OK;
}
Status DeQueue(Queue *q,ElemType *e)
{
if(q->front==q->rear&&!q-.tag) return FALSE;
else{
*e=q->base[q->front];
q->front=(q->front+1)%MaxQsize;
if(q->front==q->rear)
q->tag=0;
}
return OK;
} |
|