/*(线性表)顺序表的实现--动态分配*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <cstringt.h>
#define InitLength 10
typedef struct {
char name[10];
int id;
}EleData; /*数据元素结构体*/
typedef struct {
EleData* data;
int length;
int maxsize;
}SeqList; /*动态顺序表*/
SeqList * InitList(SeqList *List)
{
List->data = (EleData *)malloc(sizeof(EleData) * InitLength);
if (List != NULL)
{
List->length = 0; //顺序表当前的长度
List->maxsize = InitLength;//顺序表可容纳的最大长度
}
return List;
}
void Increase(SeqList* List, int length)
{
EleData* TempData = NULL;
TempData = (EleData*)malloc(sizeof(EleData)*(List->length+length));
if (TempData == NULL)
return;
List->length = List->length;
List->maxsize = List->maxsize + length;
for (int i = 0; i < List->length - 1; i++)
{
TempData->id = List->data->id;
strcpy_s(TempData->name, List->data->name);
}
free(List->data);
List->data = TempData;
}
int main()
{
SeqList L; //声明一个顺序表
InitList(&L);//初始化一个顺序表
printf("size of L.size = %d\n", L.maxsize);
Increase(&L,5);
printf("size of L.maxsize = %d\n", L.maxsize);
return 0;
}
顺序表(线性表)的动态分配实现
最新推荐文章于 2024-04-05 11:31:46 发布