【考研数据结构——C语言描述】第二章 线性表顺序存储结构上的基本操作——顺序表的初始化

25计算机考研,数据结构知识点整理(内容借鉴了王道408+数据结构教材),还会不断完善所整理的内容,后续的内容也会不断更新(可以关注),若有错误和不足欢迎各位朋友指出!

目录

一.顺序表的初始化

1.静态分配

2.动态分配

3.顺序表的优点

4.顺序表的缺点


一.顺序表的初始化

静态分配和动态分配的顺序表的初始化操作是不同的。

1.静态分配

静态分配在声明一个顺序表时,就已为其分配了数组空间,因此初始化时只需将顺序表的当前长度设为0。

//SqList L; //声明一个顺序表
void InitList(sqList *L){
   L.length=0;  //顺序表初始长度为0

2.动态分配

动态分配的初始化为顺序表分配一个预定义大小的数组空间,并将顺序表的当前长度设为0。MaxSize 指示顺序表当前分配的存储空间大小,一旦因插入元素而空间不足,就进行再分配。

void InitList(SeqList *L){ 
  L.data=(ElemType *)malloc(InitSize*sizeof(ElemType)); //分配存储空间 
  L.length=0;  //顺序表初始长度为0
  L.MaxSize=InitSize;   //初始存储容量

注意:动态分配并不是链式存储,它同样属于顺序存储结构,物理结构没有变化,依然是随机存取方式,只是分配的空间大小可以在运行时动态决定。

3.顺序表的优点

可进行随机访问即可通过首地址和元素序号可以在O(1)时间内找到指定的元素;

存储密度高,每个结点只存数据元素。

4.顺序表的缺点

元素的插入和删除需要移动大量的元素,插入操作平均需要移动 n/2 个元素,删除操作平均需要移动(n-1)/2个元素;

顺序存储分配需要一段连续的存空间,不够灵活

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值