初学者问题..帮忙啊..详细答案..我给满分
//线性表的插入
#include <stdio.h>
#include <stdlib.h>
#define list_init_size 100
#define listincrement 10
typedef struct
{
int *elem ;
int listlength ;
int listsize ;
} sqlist ;
int initlist(sqlist &l)
{
l-> elem=(int *)malloc(listsize*sizeof(int));
if(l-> elem==NULL)
return 0;
l-> listlength=UNLL;
l-> listsize=list_init_size;
return 1;
}
int destroylist(sqlist *l)
{
free(l-> elem);
l-> elem=NULL;
return 1;
}
int clearlist (sqlist *l)
{
l-> elem=NULL;
l-> listlength=NULL;
return 1;
}
int listempty (sqlist *l)
{
if(l-> elem==NULL&&l-> listlength==UNLL)
return 1 ;
return 0;
}
int listlength (sqlist *l)
{
return(l-> listlength);
}
int getelem(sqlist l;int i;int &e)
{
if(i> =1&&i <=l.listlength)
*e=l.elem[i-1];
}
int priorelem (sqlist &l;cur_e;&pre_e);
{
int i=0;
while (l-> elem[i]!=cur_e)
i++;
*pre_e=l-> elem[i-1];
}
int nextelem (sqlist l;cur_e;&next_e)
{
int i=0;
while (l.elem[i]!=cur_e)
i++;
*next_e=l.elem[i+1];
}
int listinsert(sqlist &l;int i;int *e)
{
int m=0;
while(m> 10)
{
scanf( "%d ",&(l-> elem[m]));
}
if(l-> listlength> =l-> listsize)
{*elem=(int *)relloc(l-> elem,(listsize+listincrement)*sizeof(int));
if(*elem==UNLL)
return 0;
l-> listsize+=listincrement;
}
for(int j=l-> listlengtg-1;j> =i;j--)
{
l-> elem[j+1]=l-> elem[j]
}
l-> elem[j]=*e;
}
main()
{
sqlist a;
int b,c,e,d,f,i;
initlist(&a);
destroylist(&a);
clearlist(&a);
listempty(&a);
listlength(&a);
getelem(a,7,&c);
priorelem(&a,6,&d);
nextelem(&a,5,&e);
listinsert(&a,4,&f);
printf( "%d\n ",c);
printf( "%d\n ",d);
printf( "%d\n ",e);
printf( "%d\n ",f);
for(i=0;i <=listlength-1;i++)
printf( "%5d ",l-> slem[i]);
}
做错了...但不知道..是什么地方错了....哪位高手能详细的说明并注解啊..谢谢了//
[解决办法]
你的程序,
错误太多,
实在是改不过来了 ····