#include<stdio.h> //顺序表的实现——静态分配
#define MAX 10 //定义最大长度
typedef struct List
{
int data[MAX]; //用静态的数组存放数据
int lenth; //顺序表现在的长度
}List;
//顺序表的初始化
void ChuShiHua(List L)
{
L.lenth = 0; //将顺序表的长度初始化为0
for (int i = 0; i < MAX; i++)
{
L.data[i] = 0; //将所有数据元素设置为默认初始值0
}
}
int main()
{
List L;
//顺序表的初始化
ChuShiHua(L);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#define initsize 10 //默认的最大长度
typedef struct
{
int* data;
int maxsize; //顺序表的最大容量
int lenth; //目前的长度
}Seqlist;
//初始化
void ChuShiHua(Seqlist L)
{
L.data = (int*)malloc(initsize*sizeof(int)); //为存放数据开辟可存放最大长度的内存空间
L.lenth = 0;
L.maxsize = initsize;
}
//增加动态内存的长度
void Increase(Seqlist L,int len) //len为需要增加的长度
{
int* p = L.data; //将存放原来数据的内存空间的地址赋值给p
L.data = (int)malloc((L.maxsize+len)* sizeof(int)); //给L开辟新的存放数据的内存空间
for (int i = 0; i < L.maxsize; i++)
{
L.data[i] = p[i]; //将原来的数据复制到新的内存空间
}
L.maxsize = L.maxsize + len;
free(p); //释放原来存放数据的内存空间
}
int main()
{
Seqlist L;
//初始化
ChuShiHua(L);
//增加动态内存的长度
Increase(L,5);
return 0;
}