//动态创建顺序表
#include <stdio.h> #include <stdlib.h> #define InitSize 10
//定义结构体 typedef struct{ int *data; int MaxSize; int length; }SeqList;
//申请空间 void InitList(SeqList &L){ L.data=(int )malloc(InitSizesizeof(int)); L.length=0; L.MaxSize=InitSize; }
//初始化 void ChuShiList(SeqList &L){ for(int i=0; i<L.MaxSize; i++) L.data[i]=0; L.length=0; }
//增加空间 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; free(p); }
//插入数据 void listInsert_Seq(SeqList &L,int i, int e) { for(int j=L.length; j>=i; j--) L.data[j]=L.data[j-1]; L.data[i-1]=e; L.length++; }
//主函数 int main(){ SeqList L; InitList(L);
// 初始化顺序表
ChuShiList(L);
printf("初始化顺序表为:\n");
for(int i=0; i<L.MaxSize; i++){
printf(" %d",L.data[i]);
}
printf("\n");
//输出增加空间后顺序表
IncreaseSize(L, 5);
ChuShiList(L);
printf("申请空间后顺序表为:\n");
for(int i=0; i<L.MaxSize; i++){
printf(" %d",L.data[i]);
}
printf("\n");
//插入数据
listInsert_Seq(L,5,9);
//输出插入数据后顺序表
printf("插入数据后顺序表为:\n");
for(int i=0; i<L.MaxSize; i++){
printf(" %d",L.data[i]);
}
return 0;
}