C语言数据结构 - 队列

566 篇文章

已下架不支持订阅

 基于动态数组实现队列

#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;
    }

    // 初始

已下架不支持订阅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿甘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值