将具有“一对一”关系的数据“线性”地存储到物理空间中,这种存储结构就称为线性存储结构.
线性表存储数据可细分为以下 2 种:
1.将数据依次存储在连续的整块物理空间中,这种存储结构称为顺序存储结构(简称顺序表);
2.数据分散的存储在物理空间中,通过一根线保存着它们之间的逻辑关系,这种存储结构称为链式存储结构(简称链表);
顺序表定义:
顺序表申请空间时可以静态分配or动态分配,但是不管采用什么样的存储方式,都是随机存取(随机读写);
静态分配就是提前在定义里定好长度,如下:
#define Maxsize 100
typedef strcut {
Elemtype data[Maxsize ];
int Len,;
}SqList;
动态分配时需要用的时候申请存储空间
typedef strcut {
Elemtype *data;
int Len,Maxsize;
}SqList;
int main(){
SqList L;
int size=10;
L.data=(Elemtype *)malloc(size *sizeof(Elemtype);//申请10个存储空间
}
普通的增删查改很容易实现,网上一搜一大把,我来分享一下自己做过的一些题目吧:
1.将顺序表逆序,空间复杂度 O(1)
bool ReverList(SqList &L