数据结构线性表的动态分配空间要怎么增加(附代码)

一、动态分配空间增加

我们这次说的内容是基于上次的线性表空间的动态和静态分配,(点击这里复习—>超级详细之数据结构线性表的静态和动态分配_易烊千玺编外老婆的博客-CSDN博客
在这里插入图片描述

说是线性表的动态分配可以根据内容大小来分配,但是当分配完成之后,要怎么实现动态空间的增加呢?

我们用个流程图来说明

假设我们分配一个只能容纳10个人的房间A,每个人都有对应的小空位。

在这里插入图片描述

现在房间A中都有人,那么当第11个人要进来时,空间不够,需要需要一片更大的房间B来存放这些人,并且需要把原来的那些人调到新的房间B里面去

在这里插入图片描述

相关代码如下:

typedef struct {
    int *data;

    int length;//结构体当前的空间
    int maxsize;//设置了结构体的最大空间

}consumer;//定义了一个结构体
void addList(consumer &L, int len) {//len表示需要新增的长度
    int i = 0;
    int* p = L.age;
    L.age = (int*)malloc(sizeof(int) * (Initsize + len));
    while ( i < L.length) {
        L.age[i] = p[i];
    }//需要一个个的
    L.maxsize = Initsize + len;
    free(p)//释放空间
}

学会了吗
在这里插入图片描述


  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

庄小胖努力加油中

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

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

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

打赏作者

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

抵扣说明:

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

余额充值