顺序表的特点:
1.随机访问,即可以在O(1)时间内找到第i个元素
2.扩展容量不方便(即使采用动态分配的方式实现,拓展长度的时间复杂度也比较高)
3.插入、删除操作不方便,需要移动大量元素
下面为主要代码及注释
#include "stdlib.h" #define InitSize 10//默认的最大长度 typedef struct{ int *data;//指示动态分配数组的指针 int MaxSize;//顺序表的最大容量 int Length;// }SeqList; void InitList(SeqList &L){ L.data=(int *)malloc(InitSize*sizeof(int));//用malloc函数申请一片连续的存储空间 L.Length=0; L.MaxSize=InitSize; } void IncreaseSize(SeqList &L,int len){ int *p=L.data; L.data=(int *)malloc((L.MaxSize+len)*sizeof(int)); for(int i=0;i<L.Length;i++){ L.data[i]=p[i];//将数据复制到新区域 } L.MaxSize=L.MaxSize+len;//顺序表最大长度增加len free(p);//释放原来的内存空间 } int main() { SeqList L;//声明一个顺序表 InitList(L);//初始化顺序表 //...往顺序表随便插入几个元素... IncreaseSize(L,5); return 0; }
原文:https://www.cnblogs.com/Llingfeng/p/14002603.html