动态线性表基础操作

动态线性表相较于静态线性表,其优点在于可以进行内存的扩充,而不是像静态线性表一样规定大小。

1:定义

int *a来作为数组的基地址,其中size表示当前元素个数,capacity表示拥有的空间的大小。

2:初始化

初始化可以给a分配一点点空间,也可以直接不分配,后期再开辟内存。

3:内存检查

内存检查是与静态线性表区别最大的地方,静态没有这个操作,首先进行size 与capacity大小的判断,如果相等,代表目前已有的元素个数和内存空间已满,需要再开辟内存以装入更多元素。这里用到了realloc来开辟内存,其中需要转化为int*,再用新定义的int*tmp来接收,后面再将tmp赋给a。因为在初始化时并未给空间,而size 和capacity也是0,于是便需要开辟内存,便定义了newcapacity,如果capacity为0,则给予可装入4个元素的空间,如果不是0,则变为2倍。

4:尾插

尾插之前先进行一次内存检查,然后直接在最后一个的位置上插入值即可。

5:头插

头插也是,先进行内存检查,然后将所有元素后移一个单位,再将元素插入第一个位置中即可。

6:尾删

直接将size减1即可,毕竟后面需要用到输出函数也是根据size作为标准来输出的。

7:头删

头删就是将元素前移一个单位,正好能将开头的元素覆盖掉,也就是所谓的头删。

8:自定义位置插入

首先进行内存检查,然后根据自定义的位置,先将元素后移,再在需要的位置插入即可。

9:自定义位置删除

删除也就是覆盖,将其他元素前移覆盖即可。

10:销毁

free掉即可,最后将值置为空。

11:查找

查找成功返回第几个,不成功返回-1即可。

12:修改

先判断一下修改的位置是否合适,合适后直接修改即可。

13:打印输出

遍历然后直接打印输出即可。

14:使用test函数测试上述代码

最后的结果如图所示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值