记录学习用
#include <stdio.h>
#include <stdlib.h>
#define maxsize 100
#define addsize 10
typedef struct
{
int *elem;
int listsize;
int length;
} sqlist;
int initlist(sqlist *L)
{
L->elem=(int *)malloc(maxsize*sizeof(int));
if(!L->elem)
return 0;
L->listsize=maxsize;
L->length=0;
return 0;
}
int listinsert(sqlist *L,int i,int e)
{
int j;
if(i>L->length+1||i<1)
return 0;
if(L->length>=L->listsize)
{
L->elem=(int *)realloc(L->elem,(maxsize+addsize)*sizeof(int));
if(!L->elem)
return 0;
L->listsize=L->listsize+addsize;
}
for(j=L->length; j>=i; j--)
{
L->elem[j]=L->elem[j-1];
}
L->elem[i-1]=e;
L->length++;
return 0;
}
void showlist(sqlist L)
{
int i;
for(i=0; i<L.length; i++)
{
printf("%2d",L.elem[i]);
}
}
int main()
{
sqlist L;
initlist(&L);
listinsert(&L,1,1);
listinsert(&L,1,2);
listinsert(&L,3,6);
showlist(L);
return 0;
}