CODE
#include <iostream>
#define MAXSIZE 10
#define INITIAL_SIZE 10
typedef struct{
int data[MAXSIZE];
int length;
}SequenceList01;
void initialize01(SequenceList01 &L){
for(int i = 0; i < MAXSIZE; i++){
L.data[i] = 0;
}
L.length = 0;
}
typedef struct{
int *pt;
int length;
int maxsize;
}SequenceList02;
void initialize02(SequenceList02 &L){
L.pt = (int*) malloc(sizeof(int)*INITIAL_SIZE);
L.length = 0;
L.maxsize = INITIAL_SIZE;
}
void expand(SequenceList02 &L2,int unit){
int *new_pt = L2.pt;
L2.pt = (int*) malloc(sizeof(int)*(INITIAL_SIZE+unit));
for (int i = 1; i <= L2.length; i++){
L2.pt[i-1] = new_pt[i-1];
}
L2.maxsize += unit;
free(new_pt);
}
int main() {
SequenceList01 L1;
initialize01(L1);
SequenceList02 L2;
initialize02(L2);
expand(L2,5);
}
解释
- 静态创建线性表
![静态创建线性表](https://i-blog.csdnimg.cn/blog_migrate/3eaa60945494ce92e6e4308bea0ac906.png)
- 动态创建线性表
![动态创建线性表](https://i-blog.csdnimg.cn/blog_migrate/b905a42a57f0712b9a5c6eca40812aed.png)