#include <stdio.h>
typedef struct
{
int list[100];
int length;
}seqlist;
void initlist(seqlist *l)
{
l->length=0;
}
int isempty(seqlist l)
{
if(l.length==0)
return 1;
else
return 0;
}
int getelem(seqlist l,int i,int *e)
{
if(i<1||i>l.length)
return -1;
*e=l.list[i-1];
return 1;
}
int locateelem(seqlist l,int e)
{
int i;
for(i=1;i<=5;i++)
if(l.list[i-1]==e)
return i;
return 0;
}
int insertlist(seqlist *l,int i,int e)
{
int j;
if(i<1||i>l->length+1)
{
printf("插入位置不合法/n");
return -1;
}
else if(i>=100)
{
printf("顺序表已满/n");
return 0;
}
else
{
for(j=l->length;j>=i;j--)
l->list[j]=l->list[j-1];
l->list[i-1]=e;
l->length=l->length+1;
return 1;
}
}
int deletelist(seqlist *l,int i,int *e)
{
int j;
if(l->length<=0)
{
printf("顺序表已空/n");
return 0;
}
else if(i<1||i>l->length)
{
printf("删除位置不合法/n");
return -1;
}
else
{
*e=l->list[i-1];
for(j=i;j<l->length;j++)
l->list[j-1]=l->list[j];
l->length--;
return 1;
}
}
int listlength(seqlist l)
{
return l.length;
}
void main()
{
seqlist s;
int i,j,e,x,a[5]={0,1,2,3,4};
initlist(&s);
e=a[3];
s.length=sizeof(a)/sizeof(a[0]);
printf("插入线性表中元素的值/n");
for(i=1;i<=s.length;i++)
s.list[i-1]=a[i-1];
printf("%d/n",s.length);
printf("请输入要插入的元素的值/n");
scanf("%d",&x);
printf("判断要插入的位置/n");
j=locateelem(s,e);
printf("插入的位置是%d/n",j);
insertlist(&s,j,x);
printf("最终线性表中的元素值为/n");
for(i=0;i<s.length;i++)
printf("%d ",s.list[i]);
printf("/n");
}
线性表的顺序建立
最新推荐文章于 2024-05-15 08:53:13 发布