买了网站 怎么做呢/vi设计公司
队列是一种特殊的线性表,只允许在表的前端进行删除操作,而在表的后端进行插入操作。
进行插入操作的端称为队尾,进行删除操作的端称为队头。
#define QUEUEMAX 15
typedef struct{
DATA data[QUEUEMAX];
int head;
int tail;
}SeqQueue;
SeqQueue *SeqQueueInit()
{
if(q = (SeqQueue*)malloc(sizeof(SeqQueue)))
{
q->head = 0;
q->tail = 0;
return q;
}
else
{
return NULL;
}
}
void SeqQueueFree(SeqQueue *q)
{
if(q != NULL)
free(q);
}
int SeqQueueIsEmpty(SeqQueue *q)
{
return (q->head == q->tail);
}
int SeqQueueIsFull(SeqQueue *q)
{
return (q->tail == QUEUEMAX);
}
int SeqQueueLen(SeqQueue *q)
{
return (q->tail - q->head);
}
int SeqQueueIn(SeqQueue *q,DATA data)
{
if(data->tail == QUEUEMAX)
{
printf("queue is full\n");
return(0);
}
else
{
q->data[q->tail++] = data;
return(1);
}
}
DATA *SeqQueueOut(SeqQueue *q)
{
if(q->head == q->tail)
{
printf("\n queue is empty \n");
return NULL;
}
else
{
return &(q->data[q->head++]);
}
}
DATA *SeqQueuePeek(SeqQueue *q)
{
if(SeqQueueIsEmpty(q))
{
printf("queue is empty\n");
}
else
{
return &(q->data[q->head]);
}
}