顺序表
内存分配
1 //c++编译环境 2 3 #include<stdio.h> 4 #define Maxsize 10 //静态存储数据最大值 5 6 //定义顺序表 7 typedef struct{ 8 int data[Maxsize]; //存放Maxsize个int型数据类型 9 int length; // 当前顺序表位置长度 10 }Seqlist; 11 12 //初始化链表 13 void Initlist(Seqlist &L){ 14 for (int i=0;i<Maxsize;i++) //必须数据初始化,避免存在内存垃圾问题 15 L.data[i]=0; 16 L.length=0; // 当前顺序表数据长度 17 } 18 19 int main(){ 20 Seqlist L; 21 Initlist(L); 22 return 0; 23 24 }
1 #include <stdio.h> 2 #define Initsize 20 3 4 //声明顺序表数据类型 5 typedef struct{ 6 int *data; //存储int型内存区域指针 7 int length; //当前顺序表长度 8 int maxsize; 9 }Seqlist; 10 11 12 //初始化顺序表 13 void Initlist(Seqlist &L){ 14 L.data = (int *)malloc(Initsize*sizeof(int)); //内存块分配,获取内存区域指针 15 L.length = 0; //初始化当前顺序表长度 16 L.maxsize = Initsize; 17 18 } 19 20 //顺序表内存区域增加len 21 void Increasesize(Seqlist &L, int len){ 22 int *p = L.data; //获取原内存块中数据指针 23 L.data = (int *)malloc((Initsize + len)*sizeof(int));//分配新内存区域 24 for (int i=0;i<L.length;i++) //复制原有内存数据至新内存区域 25 { 26 L.data[i] = p[i]; 27 } 28 free(p); //释放原有数据 29 } 30 31 32 int main(){ 33 Seqlist L; 34 Initlist(L); 35 Increasesize(L,5); 36 return 0; 37 }