#include<stdio.h>
#include<stdlib.h>
#define initsize 100
typedef struct{
    int *data;
    int length;
    int maxsize;
}sqlist;
void createlist(sqlist &L){
    L.data=(int *)malloc(sizeof(int)*initsize);
    L.length=0;
    L.maxsize=initsize;
}
void addlist(sqlist &L,int e){
    if(L.length>=L.maxsize){printf("error");return ;}
    L.data[L.length]=e;
    L.length++;
    
}
void deletelist(sqlist &L,int e){
    int a=0,b=0;
    while(b<L.length){
        while(L.data[b]==e && b<L.length){b++;}
        L.data[a]=L.data[b];
        a++;b++;
    }
    L.length=a+1;
}
int main(){
    sqlist L;
    createlist(L);
    int i;
    for(int i=1;i<20;i++){addlist(L,i);printf("%d ",L.data[i-1]);}
    for(i=3;i<5;i++){L.data[i]=0;}
    for(i=7;i<8;i++){L.data[i]=0;}
    for(i=10;i<14;i++){L.data[i]=0;}
    printf("\n");
    for(int i=1;i<20;i++){printf("%d ",L.data[i-1]);}
    printf("\n");
    deletelist(L,0);
    for(int i=1;i<L.length;i++){printf("%d ",L.data[i-1]);}
    
    return 0;
}