计算机考研

本文探讨了数据结构中的线性表和顺序表,重点介绍了顺序表在C语言中如何进行静态和动态内存分配。在初始化和扩容过程中,文章提到了使用临时变量进行内存地址转移的方法,并指出了在插入操作中可能遇到的问题,如空位和空间不足。为确保顺序表的正确性,需要在插入前检查插入位置和内存空间。
摘要由CSDN通过智能技术生成

1 数据结构

在这里插入图片描述

四种数据逻辑结构:

在这里插入图片描述

1 线性表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 顺序表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1 静态分配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 动态分配

c 语言:
1 定义数据结构
2 init的时候手动malloc(),【将申请到的内存起始地址赋给定义的类型】
3 回收内存free()
在这里插入图片描述
步骤:
a 定义数据结构
b init 申请内存 初始化size
![在这里插入图片描述](https://img-blog.csdnimg.cn/b86c8a12ce18427ea9d73c7818e5dad5.png
c 扩容过程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1 用P先记住旧的起始地址,然后将新申请的地址给L
2 for循环将新的地址依次赋上旧的地址
【p相当于临时接一下的中间变量】
3 释放掉旧的内存地址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
上面的的代码展示了插入的过程,但实际上会产生两个问题
1 如果调用方插入的位置产生了空位,这样就不符合顺序表的规则了
2 如果顺序表没有位置了,插入会失败
在这里插入图片描述
因此,要进行两个条件的判断
1 判断插入的位置会不会岑参空位
2 判断是否有可用空间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值