线性表的顺序存储结构:在内存中找到一块空间,把一定的内存空间占了,然后把相同数据类型的数据元素依次存放在这块空间中,这也就是顺序表。今天带大家一起来学习顺序表的基本操作:顺序表空、顺序表满、插入元素、删除元素、查找元素。
1.顺序表特点
a) 逻辑上相邻的元素在物理位置上也相邻。
b) 随机访问效率高,插入和删除操作效率低。
2.顺序表的定义
#define MAX_SIZE 64 //线性表最大长度
typedef struct
{
type data[MAX_SIZE]; //元素数组,type为元素的实际类型
int length; //元素个数
}SeqList;
注:这里为减少复杂度和更好的理解,使用固定的长度,避免了动态分配。
3.基本数据操作
a) 顺序表为空
int ListEmpty(SeqList *list)
{ return (list->length == 0 ? 1 : 0); }
b) 顺序表满
int ListFull(SeqList *list)
{ return (list->length == MAX_SIZE ? 1 : 0); }
c) 插入元素
//成功插入返回0,出错返回-1