#include<stdio.h>
#include<stdlib.h>
#define initsize 10
typedef struct{
int *data;
int maxsize;
int length;
}SqList;
void InitList(SqList &L){
L.data=(int *)malloc(sizeof(int)*initsize);
L.length=0;
L.maxsize=initsize;
}
void IncreaseList(SqList &L,int len){
int *p=L.data;
L.data=(int *)malloc(sizeof(int)*(L.maxsize+len));
for(int i=0;i<L.length;i++){
L.data[i]=p[i];
}
L.maxsize=L.maxsize+len;
free(p);//动态分配的数组要手动释放
}
void CreateList(SqList &L){
int n;
printf("请输入线性表中元素的个数:");
scanf("%d",&n);
if(n>L.maxsize)
IncreaseList(L,n-L.maxsize);
printf("请输入存放其中的元素:");
for(int i=0;i<n;i++)
scanf("%d",&L.data[i]);
L.length=n;
}
void TravelList
【顺序表】基本操作-动态分配
最新推荐文章于 2024-08-14 21:15:33 发布
本文详细介绍了数据结构中顺序表的动态分配原理及实现,涵盖了创建、插入、删除等核心操作,帮助读者深入理解顺序表在内存管理上的应用。
摘要由CSDN通过智能技术生成