顺序表的插入与删除

顺序表的插入与删除

开发工具与关键技术:Visual Studio 2015、算法
作者:易金亮
撰写时间:2020.05.28

今天我们就来说说线性表中顺序表的插入与删除,首先我们先认识一下什么是线性表,线性表是由n(n>=)个相同类型数据元素(结点)a1,a2,a3…an组成的有限序列。我们记为(a1,a2,…an),其中n代表数据元素的个数,也称表的长度。空表中n=0,记为()。我们知道了什么是线性表,那什么是顺序表呢?顺序表是线性表的一种存储方式。它的特点是所有的元素紧密保存在一起,它们的地址是连续的空间。
了解了什么是顺序表,下面我们就进入今天的主题,顺序表的插入与删除,首先,我们先来讲一下顺序表的插入,其插入数据元素的方法代码如下图所示:
顺序表的插入与删除_第1张图片
如上图所示,这是我们插入数据元素的代码,其中i代表插入数据元素的位置,x代表需要插入的数据元素,它插入元素的执行步骤是从顺序表后面最后一个元素开始往后移,然后空出需要插入元素的位置,最终把需要插入的元素插入进去。上图代码中size代表实际的元素个数,然后到i这个位置每一个往后移一个元素,其目的就是留出i这个位置,把i这个位置空出来,然后把我们要插入的对象复制给它,因为我们插入了一个元素,所以我们的实际元素个数要加1,既Size要++。因为算法具有健壮性,所以我们的算法一定要把可以预料到的结果都呈现出来,上述代码中的省略号省略的就是我们插入位置i的合理范围,如在下图图表中0-6都是i的合理位置,当i小于0或大于6时就是不合法的位置了。 其插入数据元素的图表如下图所示:
顺序表的插入与删除_第2张图片
如上图所示,这就是我们顺序表插入元素的图表了,通过图表我们就可以深刻的理解顺序表的插入了。
下面我们再来说说顺序表的删除,因为顺序表的特点是所有的元素紧密保存在一起,它们的地址是连续的空间,所以就存在了一个问题,如果我们想删除一个元素,空出来的位置是不能空着的,因为空着就违反了顺序表的原则。所以当我们删除一个元素时,这个元素之后的每一个元素都要往前移一个位置,这样才能保证地址连续存放的特点。下面我们来看一下删除元素的代码,其代码如下截图所示:
顺序表的插入与删除_第3张图片
如上截图所示就是我们顺序表删除元素的代码,其中i代表的是要删除元素的位置,delete表示删除,首先我们需要备份所要删除的元素,然后从i这个元素的下一个元素开始一直到最后一个元素,每一个元素都往前移一个位置,因为删除了一个元素,所以实际的元素个数要减一,既Size要–。这个时候我们正好被删除的元素作为返回值还能被找到。这就是整个顺序表删除元素的过程。其中代码中省略的部分和插入时一样,省略的是删除位置i的合理范围,以确保算法的健壮性。

你可能感兴趣的:(算法)