69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#define listbegine 100
#define listincrease 10
typedef struct list
{
int *elem;
int length;
int listsize;
}la;
la l;
int creat()//建立一个空的线性表。
{
l.elem=(int *)malloc(listbegine*sizeof(int));
if(!l.elem)
return -2;
l.length=0;
l.listsize=listbegine;
return 1;
}
int delet(int e)
{
int *p,i,j;
p=l.elem;
for(i=0;*(p+i)!=e&&i<l.length;i++);
for(j=i+1;j<l.length;j++)
*(p+j-1)=*(p+j);
--l.length;
return 1;
}
int insert(int i,int m)
{
int *p,*newbase,j;
if(i<1||i>l.length)
return -1;
newbase=(int *)realloc(l.elem,(l.listsize+listincrease)*sizeof(int));
if(!newbase)
exit (-2);
l.elem=newbase;
p=l.elem;
for(j=l.length;j>i;j--)
*(p+j+1)=*(p+j);
*(p+i)=m;
++l.length;
return 1;
}
void display()
{
int i,n;
n=l.length;
for(i=0;i<n;i++)
printf(" %d",l.elem[i]);
printf("\n");
}
void main()
{
int n,i,e,m;
creat();
printf("请输入线性表的个数n并输入相应的数值\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&l.elem[i]);//易错点。
l.length++;
}
display();
printf("请输入删除的元素e的值\n");
scanf("%d",&e);
delet(e);
display();
printf("请输入插入的位置i和插入的值m\n");
scanf("%d%d",&i,&m);
insert(i,m);
display();
}
l.elem=(int *)malloc(sizeof(int));
for(i=0;i<n;i++,l.length = i)
scanf("%d",&l.elem[i]);//易错点。