--?? 2016-10-13 13:37 采纳率: 50%
浏览 1115

数据结构线性表的顺序表的增删查 的程序 存在一些问题 自己不会改

哪位大神能帮我改一下这个程序 的错误 并且 表明为什么错了,我自己看不懂那是什么错误 谢谢~~~~~~~~
#include
#include
#include

#define list_init_size 100
#define increment 10
typedef struct{
int *elem;
int length;
int listsize;
}sqlist;
int initlist_sq(sqlist &L)
{
L.elem=(int *)malloc(list_init_size *sizeof(int));
if(!L.elem) exit(-1);
L.length=0;
L.listsize=list_init_size;
return 1;

}
int create(sqlist &L)
{
int m,i;
printf("输入线性表的长度:");
scanf("%d",&m);
if(m>listsize) printf("m的数值太大");
for(i=1;i<m;i++)
{
scanf("%d",&L.elem[i-1]);
}
L.length=m;
return 1;
}

int insert(sqlist &L,int i,int x)
{
int *newbase
if(iL.length+1)
return 0;
if(L.length>=L.listsize)
{ newbase=(int *)realloc(L.elem,(L.listsize+increment)*sizeof(int));
L.elem=newbase;
L.listsize+=increment;}
int *q,*p;
q=&L.elem[i-1];
for(p=&L.elem[length-1];p>=q;--p)
{
*(p+1)=*p;
}
*q=e;
++L.length;
return 1;
}
int delete(sqlist &L,int i,int &e)
{
int *q,*p;
if(iL.length) return 0;
p=&L.elem[i-1];
e=*p;
q=L.elem+L.length-1;
for(++p;p<=q;++p)
{
*(p-1)=*p;
}
--L.length;
return 1;
}
int location(sqlist L,int e)
{
int i=1;
int *p;
p=L.elem;
while(i<=L.length)
{
if(e=*p++)
printf("%d",i);
else
i++;

}
if(i<=L.length ) return(i);
else return 0;

}

void printl(sqlist &L)
{
int i;
for(i=0;i<(L.length-1);i++)
{
printf("%4d",L.elem[i]);

}
printf("\n");
}
int main()
{
sqlist *la;
initlist_sq(la);
create(la);
int m,n;
printf("输入要插入的数的位置和数值\n");
scanf("%d%d",&m,&n);
insert(la,m,n);
printl(la);
int x;
printf("输入要删除的数的位置\n");
scanf("%d",&x) ;
delete(la,x);
printl(la);
int y;
printf("输入要查找的数值\n");
scanf("%d",&y);
location(la,y);
printl(la);
return 0;

}

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-10-13 13:37
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料