数据结构论坛

首页 » 分类 » 常识 » 数据结构干货小故事说顺序表的基本操作一
TUhjnbcbe - 2024/6/9 17:44:00

#数据结构#

顺序表的基本操作——插入操作

插入操作:表示在顺序表中的第i个位置插入一个指定的元素,函数表示为ListInsert(L,i,e)。

其中,L表示顺序表,e表示插入的指定元素。

小故事4-1:今天来讲个小鸭子排排坐的故事。假设一群小鸭子,鸭妈妈要带小鸭子们去觅食,让小鸭子们先一个个排好,排好队了再一起出发去池塘边觅食游戏。鸭妈妈一共有八只鸭宝宝,小鸭子们听了鸭妈妈的话,一个个排好队。鸭妈妈就在一个个数,看看有没有小鸭子还没到。这时发现少了老三还没到。正打算去寻找老三,发现老三从家里慢悠悠地走出来,原来他刚才才起床,是个货真价实的小懒虫。小鸭子们是按出生的时间,也就是小鸭子的年龄来排队的。这时老三就要插入到老二和老四之间。在老三要插入到老二和老四之间,就需要告知他们空出一点点位置来站进来。而,老二和老四也要告诉旁边的小鸭子要空出一点点位置来,这样的话,所有的小鸭子都要移动自己的位置。那要怎么半呢?就只移动一边好了。而对于老大而言,老大是相当于标杆的作用,就是起到标示大家不要走错地方的作用,所以,就不移动老大的位置了。就将老四至老八的位置向后移动一位。也就是,老八向后移动一位,老七再站到老八的位置,老六再站到老七的位置,以此类推,直到空出老三的位置,老三再站到老二和老四之间。

这也就是顺序表插入的简单思路。

超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架

代码示例:

#defineMaxSize8//定义出最大的长度,此处表示小鸭子的总数

Typedefstruct{

Intdata[MaxSize];//采用静态数组的方式来存放数据元素

Intlength;//定义顺序表当前的长度

}Sqlist;//定义顺序表的类型

VoidListInsert(SqListL,inti,inte)//基本操作,插入函数在顺序表L中的位序i上插入数据元素e

{intj;

for(j=L.length;j=i;j--)

L.data[j]=L.data[j-1];//数据元素是先移动后面的元素,依次移动前面的元素,也就是小鸭子移动位置的方式

L.data[i-1]=e;//在位置i处插入数据元素e,也就是老三站到老二和老四之间

L.length++;//对数据元素长度进行统计

}

Intmain()

{SqList();//声明一个顺序表

InitList(L);//初始化顺序表

ListInsert(L,3,3);//在队列中的第三个位置插入元素3,要注意的是数组下标是从0开始的

Return0;

}

对于该程序代码,是能实现顺序表的基本操作——插入,但是还不够健壮,考虑到的情况还较少,下次我们再进行介绍吧。

1
查看完整版本: 数据结构干货小故事说顺序表的基本操作一