数据结构笔记2 线性表之顺序表

什么是线性表?

线性表(Linear List)是由n(n≥0)个数据元素(结点)a1,a2,…,an组成的有限序列。

顺序表的特点:

  1. 容量固定
  2. 访问速度快

 

线性表的顺序存储结构在c#中最直接表现形式就是数组。数组是最基础也是存取速度最快的一种集合类型。

在托管堆中创建数组时,除了数组元素,数组对象所占用的内存块还包括类型对象指针、同步索引等额外成员!

数组虽然有很多优点,但是它无法进行添加和删除,也无法动态的更改集合的大小
如果要动态的改变数组所占用的空间的大小,可以使用c#中的ArrayList。动态数组。
 

线性顺序表的操作:

插入:
通常将增加的内容加在顺序表的最后一个,但是如果要求按顺序插入时则应该先查找应该插入的位置在将该位置以后的顺序表的所有内容均向后移动,再将需要插入的内容插入相应位置。

要注意的问题是:    
(1)顺序表中数据区域有MAXLEN个存储单元,所以在插入时先检查顺序表是否已满,在表满的情况下不能再做插入,否则产生溢出错误。
(2)检验插入位置的有效性,这里 i 的有效范围是:1<=i<=n+1,其中 n 为原表长。
(3)注意数据的移动方向,必须从原线性表最后一个结点(an)起往后移动。顺序表插入操作需移动表中一半数据元素,其时间复杂度为O(n)。
删除:
先查找应该删除内容的位置,在将该位置以后的顺序表的所有内容均向前移动,需要删除的内容就自动被删除了
请注意以下问题:
   (1)首先要检查删除位置的有效性,删除第i个元素,i的取值为: 1<=i<=n。
   (2)当表空时不能做删除,因表空时 L->last的值为-1,条件(i<1 || i>L->last+1)也包括了对表空的检查。
   (3)删除 ai 之后,该数据则已不存在,如果需要,必须先取出 ai 后,再将其删除。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值