|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#define MaxQsize 10
typedef int Status;
typedef int ElemType;
typedef struct{
ElemType *base;
int rear;
int length;
}Queue;
Status InitQueue(Queue *q)
{
q->base=(ElemType*)malloc(MaxQsize*sizeof(ElemType));
if(!q->base) return FALSE;
q->rear=0;
q->length=0;
return OK;
}
Status EnQueue(Queue*q,ElemType e)
{
if((q->rear+1)%MaxQsize==(q->rear+MaxQsize-q->length)%MaxQsize)
//(q->rear+MaxQsize-q->length)%MaxQsize 正好是队列中存储的第一个数据的下标,及头指针的位置
return FALSE;
else{
q->base[q->rear]=e;
q->rear=(q->rear+1)%MaxQsize;
q->length++;
}
return OK;
}
Status DeQueue(Queue*q,ElenType*e)
{
if((q->rear+MaxQsize-q->Length)%MaxQsize==q->rear;)
return FALSE;
else{
*e=q->base[(q->rear+MaxQsize-q->length)%MaxQsize];
q->length--;
}
return OK;
} |
|