当前位置:   article > 正文

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

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

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

目录

一.顺序表的初始化

1.静态分配

2.动态分配

3.顺序表的优点

4.顺序表的缺点


一.顺序表的初始化

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

1.静态分配

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

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

2.动态分配

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

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

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

3.顺序表的优点

顺序表的主要优点:

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

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

4.顺序表的缺点

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/674109
推荐阅读
相关标签
  

闽ICP备14008679号