基于动态数组实现队列
#include <stdlib.h>
typedef int bool;
#define TRUE 1
#define FALSE 0
// 动态数组元素类型E, 这里默认给int,后期可以将int换成其他类型
typedef int E;
// 动态数组结构体
typedef struct List {
E *array; // 底层容器:数组
int capacity; // 底层数组容量的长度
int size; // 存入底层数组的元素个数
} Queue; // 使用动态数组模拟队列
// 动态数组最低容量,设置最低容量的目的是避免容量设置过小,导致频繁的内存重新申请
#define MIN_CAPACITY 16
/*!
* 初始化队列
* @return 队列指针
*/
Queue* init() {
Queue* queue = (Queue*) malloc(sizeof(Queue));
// 申请动态数组结构体内存失败
if(queue == NULL) {
return NULL;
}
// 申请动态内存给底层数组
queue->array = (E *) malloc(sizeof(E) * MIN_CAPACITY);
// 申请底层容器内存失败
if (queue->array == NULL) {
// 同时释放掉已经申请到的动态数组结构体的内存
free(queue);
return NULL;
}
// 初始