线性表是具备相同数据类型的n(n>=0)个数据元素的有限序列
除第一个元素外,每一个元素有且仅有一个直接前驱,除最后一个元素外,每一个元素有且仅有一个直接后继。数组
线性表的顺序存储是用一组地址连续的存储单元(c中的数组),依次存储线性表中的数据元素,顺序存储的线性表也叫顺序表性能
顺序表须要的三个部分
1.存储空间的起始位置
2.顺序表最大存储容量
3.顺序表当前的长度spa
#define MaxSize 50 typedef int Elemtype typedef struct{ ElemType data[MaxSize]; int length ; }SqList; //大小是固定的
动态建表3d
typedef int Elemtype typedef struct{ ElemType *data; int length ; int MaxSize ; }SqList; #define InitSize 100 SqList L ; L.data = (ElemType)malloc(sizeof(ElemType) * InitSize)
动态分配并非链式存储,一样仍是属于顺序存储结构,只是分配的空间大小能够在运行时决定。code
1.插入
性能
2.删除
性能blog
优势:
存储密度大,不须要为表中元素之间的逻辑关系增长额外存储空间。
随机存取:能够快速存储表中任一位置的元素
缺点:
出入和删除操做须要移动大量元素
对存储空间要求高,会产生存储空间的“碎片”rem