数据结构-顺序表的简单实现

代码实现 #include <stdio.h> #include <malloc.h> #define InitSize 10 typedef struct{ int *data; int MaxSize; int length; // 当前长度 }SqList; // 初始化 void InitList(SqList* L){ L->data=(int *)malloc(InitSize*sizeof(int)); L->length=0; L->MaxSize=InitSize; } // 动态增加 void IncreaseSize(SqList * 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); } /// 插入一条数据 int insert(SqList* L ,int data){ // 有空间的话 if(L->length<L->MaxSize){ L->data[L->length++] = data; return 0; } return -1; } int main(){ SqList L; InitList(&L); printf("Max len= %d",L.MaxSize); printf("\n"); printf("length = %d",L.length); for (int i = 0; i < 5; ++i) { insert(&L,i); } printf("\n"); printf("Inserted Date is : \n"); for (int i = 0; i < L.length; ++i) { printf("%d ",L.data[i]); } printf("\n"); printf("Max len= %d",L.MaxSize); printf("\n"); printf("length = %d",L.length); IncreaseSize(&L,5); printf("\n After Increase the Sql Size \n"); printf("Max len= %d",L.MaxSize); printf("\n"); printf("length = %d",L.length); printf("\n"); printf("Inserted Date is : \n"); for (int i = 0; i < L.length; ++i) { printf("%d ",L.data[i]); } return 0; }; 运行结果如下 Max len= 10 length = 0 Inserted Date is : 0 1 2 3 4 Max len= 10 length = 5 After Increase the Sql Size Max len= 15 length = 5 Inserted Date is : 0 1 2 3 4 ...

April 12, 2023 · 2 min · 晚晴