구조체가 있는데 몇 가지 테스트를 수행하는 데 주요 함수를 쓰고 싶습니다. 그러나 1 -이 큐를 인쇄하려면 어떻게해야합니까? 2 - 어떻게 더 많은 dinamically enqueue 수 있습니까? "for"와 같이?C에서 큐 [데이터 구조]를 인쇄하는 방법?
저는 (숙제를하기 전에) 여기에 숙제에 대한 대답을 얻으려고하지 않습니다. 나는 시험을 치른다. 그래서 나는 그것을하는 법을 배우려 고 노력하고있다. 그리고 누군가 나를 도울 수 있으면 나는 매우 감사 할 것이다.
#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;
}
[의 malloc()''의 반환 값을 캐스팅하지 마십시오!] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc/605858 # 605858) –
'대기열에 대기열 (큐 * 대기열, int 항목) {'... int (또는 void)를 반환하는 함수에 의존하지 말 것. – wildplasser