#include <stdio.h>
#include <stdlib.h>
#define Initsize 10
#define Elemtype int
typedef struct{
Elemtype *data;
int Maxsize;
int length;
}Seqlist;
void InitLiner(Seqlist *list){
//初始化函数
list->data = (Elemtype *)malloc(Initsize *sizeof(Elemtype));
list->length = 0;
list->Maxsize = Initsize;
}
void InitLiner2(Seqlist *list){
int i;
for(i=0;i<list->Maxsize;i++){
list->data[i] = i;
list->length++;
}
}
void InitLiner3(Seqlist *list){
int i;
for(i=list->length;i<list->Maxsize;i++){
list->data[i] = i;
list->length++;
}
}
void PrintLiner(Seqlist list){
//打印顺序表
int i;
for (i = 0; i < list.length; i++)
{
printf("%d ",list.data[i]);
}
printf("\n");
}
void Increase(Seqlist *l1,int len){
Elemtype *p = l1->data;
l1->data = (Elemtype*)malloc((l1->Maxsize+len)*sizeof(Elemtype));
int i;
for(i=0;i<l1->length;i++){
l1->data[i] = p[i];
}
l1->Maxsize = l1->Maxsize+len;
free(p);
}
int main() {
Seqlist l;
InitLiner(&l);
InitLiner2(&l);
printf("原线性表为:");
PrintLiner(l); //打印
Increase(&l,10);
printf("增加容量后的线性表为:");
InitLiner3(&l);
PrintLiner(l);
return 0;
}
数据结构——线性表(王道顺序表动态分配的顺序表增加空间)
最新推荐文章于 2022-04-17 11:20:08 发布