首页云计算【数据结构】顺序表的应用

【数据结构】顺序表的应用

时间2024-08-02 05:52:47发布ongwu分类云计算浏览50

目录

一.引言        

二.顺序表概念

三.顺序表的实现

1.定义顺序表

2.顺序表初始化

​编辑

3.检查空间,如果满了,进行增容

4.顺序表尾插

5.顺序表尾删

6.顺序表头插

7.顺序表头删

​编辑

8.顺序表查找

9.顺序表在pos位置插入x

10.顺序表删除pos位置的值

11.顺序表销毁

12.顺序表打印

一.引言        

        在计算机科学中,数据结构是计算机存储、组织数据的方式。顺序表作为一种线性表,以其简单、易用的特点,成为了许多高级数据结构的基础。了解顺序表的工作原理和实现方法,对于我们更好地理解计算机科学具有重要意义。

二.顺序表概念

        顺序表(Sequential List)是一种线性表,它的特点是数据元素在物理存储上连续,且元素之间的逻辑顺序与物理顺序相同。在顺序表中,数据元素按照一定的顺序排列,每个元素都有一个确定的位置,可以通过索引(或称为下标)直接访问

以下是顺序表的基本概念和特性:

数据元素:顺序表中的每一个对象称为数据元素,可以是整数、浮点数、字符或者更复杂的记录类型。

索引(下标):顺序表中的每个数据元素都有一个索引,通常从0开始计数,用于指示元素在表中的位置

长度:顺序表的长度是指表中数据元素的个数,长度可以根据需要进行动态调整,但通常有一个最大容量限制。

存储空间:顺序表通常在计算机内存中占用一段连续的存储空间,以便于通过索引快速访问元素。

随机访问:顺序表支持随机访问,即可以在O(1)的时间复杂度内直接访问到任意位置的元素。

顺序性:顺序表中的元素按照一定的顺序排列,元素之间的顺序关系是相邻的,即第一个元素紧邻第二个元素,以此类推。

顺序表的主要操作包括:

初始化创建一个空的顺序表。插入:在顺序表的指定位置插入一个新的数据元素。删除:从顺序表中删除指定的数据元素。查找:根据特定条件在顺序表中查找数据元素。排序:对顺序表中的元素进行排序。清空:将顺序表中的所有元素删除,使其变为空表。遍历:按照顺序访问顺序表中的每一个元素。

顺序表的优缺点如下:

优点

访问效率高:随机访问能力强,访问任意元素的时间复杂度为O(1)。存储密度高:顺序表的数据元素紧密排列,不需要额外的空间存储元素间的关系

缺点

插入和删除操作效率低:在顺序表的中间或头部插入或删除元素时,可能需要移动大量元素,时间复杂度为O(n)。固定容量:通常顺序表的容量是固定的,若存储空间不足,需要进行扩容操作,这可能会导致性能下降。

顺序表是实现其他复杂数据结构(如栈、队列等)的基础,它在算法设计和实际应用中有着广泛的使用。  (后续也会发布用顺序表来实现栈和队列)

三.顺序表的实现

        静态顺序表只适用于确定知道需要存多少数据的场景。静态顺序表的定长数组导致N定大了,空间开多了浪费,开少了不够用。所以现实中基本都是使用动态顺序表,根据需要动态的分配空间大小,所以下面我们实现动态顺序表。

1.定义顺序表

        这里使用typedef函数来讲重命名为SLDateType是因为插入顺序表的数据不会是固定不变的,这么做也是为了方便后续管理更新

2.顺序表初始化

        将结构体里的array指向空指针,防止其变为野指针。

3.检查空间,如果满了,进行增容

        结构体里的capacity的主要功能就在这一板块实现,主要是为了检查顺序表内数据是否存满。如果满了就使用realloc函数来再次开辟空间。(这里使用了三目操作符,不懂的小伙伴可以点击三目操作符

4.顺序表尾插

5.顺序表尾删

        此操作简单易懂,需要注意的是这里的删除并不是真正物理上删除数据,而是逻辑上减小了size的值,使print读取不到他,来做到删除的效果。

6.顺序表头插

7.顺序表头删

8.顺序表查找

9.顺序表在pos位置插入x

10.顺序表删除pos位置的值

11.顺序表销毁

12.顺序表打印

        这里类型于数组的打印,都是需要循环来实现的。

Ongwu博客 版权声明:以上内容未经允许不得转载!授权事宜或对内容有异议或投诉,请联系站长,将尽快回复您,谢谢合作!

展开全文READ MORE
【C/排序算法】:快速排序和归并排序的非递归实现 CTF php RCE (一)

游客 回复需填写必要信息