我刚刚开始了 C 队列的第一节课,我得到了一个练习来创建队列,向队列中添加元素和删除元素。但是,我无法检查队列是满还是空。
#include <stdio.h> typedef struct FloatQueue { float data[100]; int rear; int size; int front; } FloatQueue; typedef enum {false, true} bool; void initQ (FloatQueue * pq); bool isFullQ (FloatQueue * pq); bool isEmptyQ (FloatQueue * pq); void addQ(FloatQueue * pq, float x); float deleteQ ( FloatQueue * pq); int sizeQ (FloatQueue * pq); void initQ (FloatQueue * pq) { pq->size = 0; pq->front = pq->rear = 0; } void main () { FloatQueue q1; initQ (&q1); addQ (&q1, 99.9); addQ (&q1, 888); while (!isEmptyQ(&q1)) { printf("%f", deleteQ (&q1)); } } int sizeQ (FloatQueue * pq) { return pq->size; } bool isFullQ (FloatQueue * pq) { return true; } bool isEmptyQ (FloatQueue * pq) { return false; } void addQ ( FloatQueue * pq, float x) { (pq->rear) ++; (pq->data[pq->rear]) = x; (pq->size) ++; } float deleteQ ( FloatQueue * pq ) { (pq->front)++; return; }