队列的实现是一种先进先出的策略。以下使用动态分配内存的数组来实现一个队列。其中,队列的resize过程将不会保留原来队列中的item。
//Item.h
typedef struct ITEM {
int key;
void * statellite;
} item_t;
//Queue.h
#ifndef STDIO_H
#define STDIO_H
#include <stdio.h>
#endif
#ifndef STDLIB_H
#define STDLIB_H
#include <stdlib.h>
#endif
#ifndef ITEM_H
#define ITEM_H
#include "Item.h"
#endif
typedef struct QUEUE
{
int head;
int tail;
int count;
int size;
item_t* array;
} queue_t;
int queue_init(queue_t * Q, int size);
int queue_resize(queue_t * Q, int size);
int queue_free(queue_t * Q);
int queue_empty(queue_t * Q);
int queue_enqueue(queue_t * Q, item_t item);
int queue_dequeue(queue_t * Q, item_t * item);
void queue_info(queue_t * Q);
//Queue.c
#include "Queue.h"
int queue_init(queue_t * Q, int size) {
Q->head = 0;
Q->tail = 0;
Q->count = 0;
Q->