(数据结构)顺序表的定义

(数据结构)顺序表的定义_第1张图片(数据结构)顺序表的定义_第2张图片

#include	//顺序表的实现——静态分配
#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;
}

(数据结构)顺序表的定义_第3张图片

#include
#include
#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;
}

 

(数据结构)顺序表的定义_第4张图片(数据结构)顺序表的定义_第5张图片

你可能感兴趣的:(数据结构,数据结构,算法)