队列的定义
typedef struct Queue {
int* data;
int lengeth;
int head, tail, length;
int count;
}Queue;
取出队头元素操作
int front(Queue* q) {
return q->data[q->head];
}
队列的初始化操作
Queue* init(int n) {
Queue* q = (Queue*)malloc(sizeof(Queue));
q->data = (int*)malloc(sizeof(int) * n);
q->lengeth = n;
q->head = q->tail = 0;
q->count = 0;
return q;
}
队列的清空操作
void clear(Queue* q) {
if (q == NULL) return;
free(q->data);
free(q);
}
队列的扩容操作
int expand(Queue* q) {
int extr_size = q->lengeth;
int* p;
while (extr_size) {
p = (int*)malloc(sizeof(int) * (q->lengeth + extr_size));
if (p != NULL) break;
extr_s