我有结构,我想编写一个主函数来做一些测试,但是: 1 - 我怎样才能打印这个队列?2 - 我怎样才能更动态地排队?比如,用“for”?
我不想在这里找到家庭作业的答案(在有人这么说之前)。我有一个测试,所以我只是想学习如何去做,如果有人可以帮助我,我将非常感激。
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 10
typedef struct Queue{
int size;
int first;
int last;
int items[MAX_SIZE];
} Queue;
Queue* createQueue() {
Queue *queue = (Queue*)malloc(sizeof(Queue));
queue->size = 0;
queue->first = 0;
queue->last = MAX_SIZE - 1;
return queue;
}
Enqueue(Queue *queue, int item) {
if(queue->size >= MAX_SIZE) {
printf("Queue is full!");
}
else {
queue->last = (queue->last + 1) % MAX_SIZE;
queue->items[queue->last] = item;
queue->size++;
}
}
Dequeue(Queue *queue) {
if(queue->size <= 0) {
printf("Queue is empty!");
}
else {
queue->first = (queue->first + 1) % MAX_SIZE;
queue->size--;
}
}
int main {
int i;
Queue *queue = createQueue();
Enqueue(queue, 1);
Enqueue(queue, 5);
Enqueue(queue, 8);
Enqueue(queue, 9);
for(i = 0; i <= MAX_SIZE; i++) { // Is this "for" right?
printf("%d ", queue-> ????) // Don't know what to put here to print right
}
return 0;
}