如何使用C检查上一次操作

时间:2018-05-22 07:15:08

标签: c data-structures queue

我正在使用C制作循环队列,书中说还有其他方法可以检查队列是满还是空。 一个是像这样制作(Rear =(Rear + 1)%QueueSize)。这是基本的方式。 另一种是检查上次操作。如果最后一次操作是入队的,那么它就不会是空的,如果最后一次操作是出列的,那么它就不能满了。 但我不知道如何使用C

检查上一次操作
int isEmpty_lastOP(QueueType *cQ) {
    if (???) {
        printf(" Circular Queue is empty! ");
        return 1;
    }
    else return 0;
}
int isFull_lastOP(QueueType *cQ) {
    if (???) {
        printf("  Circular Queue is full! ");
        return 1;
    }
    else return 0;
}
void enQueue_lastOP(QueueType *cQ, element item) {
    if (isFull_lastOP(cQ))  return;
    else {
        cQ->rear = (cQ->rear + 1) % cQ_SIZE;
        cQ->queue[cQ->rear] = item;
    }
}
element deQueue_lastOP(QueueType *cQ) {
    if (isEmpty_lastOP(cQ)) exit(1);
    else {
        cQ->front = (cQ->front + 1) % cQ_SIZE;
        return cQ->queue[cQ->front];
    }
}

0 个答案:

没有答案