typedef struct QUEUE { ElementType *data; int front; int rear; int maxSize; }*Queue; Queue CreateQueue(int maxSize){ Queue Q = (Queue)malloc(sizeof(struct QUEUE)); Q->data = (ElementType*)malloc(sizeof(ElementType)*maxSize); Q->front = 0; Q->rear = 0; Q->maxSize = maxSize; return Q; } void DestroyQueue(Queue Q) { if (Q && Q->data) { free(Q->data); free(Q); } } int IsFullQueue(Queue Q){ return (Q->front == (Q->rear + 1) % Q->maxSize); } int IsEmptyQueue(Queue Q){ return (Q->rear == Q->front); } ElementType Dequeue(Queue Q){ if (IsEmptyQueue(Q)){ return ERROR; } Q->front = (Q->front + 1) % Q->maxSize; return Q->data[Q->front]; } void Enqueue(Queue Q, ElementType item) { if (IsFullQueue(Q)) { return; } Q->rear = (Q->rear + 1) % Q->maxSize; Q->data[Q->rear] = item; }
队列C语言实现
猜你喜欢
转载自www.cnblogs.com/2018shawn/p/12821006.html
今日推荐
周排行