一、顺序表的作用
1. 存储和访问数据:
顺序表可以按照一定的顺序存储数据,使得数据可以被有效地组织和管理。同时,顺序表可以通过索引快速访问数据元素,提高数据的访问效率。
2. 插入和删除数据:
顺序表支持在任意位置插入和删除数据元素。通过顺序表的插入和删除操作,可以方便地对数据进行修改和更新。
3. 查找和定位数据:
顺序表可以通过索引定位数据元素的位置,从而快速查找和访问数据。此外,顺序表还可以支持按照特定的条件查找数据元素,如按值查找。
4. 排序和合并数据:
顺序表可以方便地对数据进行排序和合并。通过顺序表的排序操作,可以将数据按照一定的规则进行排列,使得数据更易于使用和查找。
二、顺序表的特点
顺序表具有以下几个特点:
-
存储空间连续:顺序表使用一段连续的内存空间来存储数据元素,这种连续的存储方式使得顺序表的访问效率高。
-
元素类型任意:顺序表中的数据元素类型可以是任意类型,如整数、字符、结构体等。这种灵活性使得顺序表可以存储各种不同类型的数据。
-
元素顺序有序:顺序表中的元素的顺序是有序的,每个元素都有一个唯一的位置。这使得顺序表可以高效地进行元素的查找、插入和删除操作。
三、怎么去写顺序表
1、要是我们去写顺序表主要需要满足的操作:
-
初始化:创建一个空的结构体。
-
摧毁:在使用完之后销毁结构体。
-
打印:使结构体方便在屏幕上面打印出来。
-
插入:在指定位置插入一个元素。
-
删除:删除指定位置的元素。
-
查找:根据值或位置查找元素。
-
修改:根据位置修改元素的值。
2、开始创建两个.c和一个.h的文件
一、初始化结构体:定义一个结构体并在此之上编写初始化的函数。
typedef int SLDataType;//方便以后更改使用的数据类型
typedef struct SeqList
{
SLDataType* a;//存放数据的数组
int sz;//存放数据的个数
int capacity;//存放数组容量
}SL;
利用typedef把代码的可用性提高并且方便之后方便使用定义的结构体和方便改变需要的数据类型。
在测试的文件上面编写初始化的函数,把定义的结构体给它初始化一下把所有的数据重置。
void SLInit(SL* ps1)
{
assert(ps1);
ps1->a = NULL;
ps1->sz = 0;//有效的数据个数
ps1->capacity = 0;//数组的内存容量
}
接下来写销毁的函数,就是把里面存的指针给置空并把0赋给里面的数据。
void SLDestroy(SL* ps1)
{
if (ps1->a != NULL)
{
free(ps1->a);
ps1->a = NULL;
}
ps1->capacity = 0;
ps1->sz = 0;
}
因篇幅过大,接下来的增删查将改在下一篇中展示本篇先把顺序表的基础先写一下,下一篇我们就开始写增删查改了。