как проверить последнюю операцию с помощью C - PullRequest
0 голосов
/ 22 мая 2018

Я создаю кольцевую очередь, используя 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];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...