#include<stdio.h>
#define MAX 1000
typedef int datatype;
typedef struct
{
datatype
data[MAX];
int
last;
}
sequenlist;
int main()
{
int insert(
sequenlist *L, int x, int i
);
int deletee(
sequenlist *L, int i
);
int
output_r( sequenlist *L
);
int input(
sequenlist *L
);
int output(
sequenlist *L
);
sequenlist
s,*p=&s;
int
indata,inlocate,deletedx;
input(p);
printf("请输入要插入的数:");
scanf("%d",&indata);
printf("请输入要插入的位置:");
scanf("%d",&inlocate);
insert(
p,indata,inlocate
);
printf("插入后的数据:");
output(p);
printf("请输入要删除的位置:");
scanf("%d",&deletedx);
deletee( p,
deletedx
);
printf("删除后的数据:");
output(p);
printf("逆序输出数据:");
output_r( p
);
return
0;
}
int output(sequenlist
*L)
{
int i;
for ( i=0;
i<=L->last; i++ )
printf("%d ",L->data[i]);
printf("\n\n");
return(1);
}
int input( sequenlist *L
)
{
int i;
printf("请输入原始数据个数:");
scanf("%d",&(L->last));
L->last--;
printf("请输入原始数据:");
for ( i=0; i
<= L->last; i++ )
scanf("%d",&(L->data[i]));
printf("原始数据为:");
output(L);
return
(1);
}
int insert( sequenlist *L, int x, int i
)
{
int j;
if (
((*L).last)>=MAX-1 )
{
printf("overflow");
return 0;
}
else
{
if ( (i<1) || ( i > ((*L).last)+1 )
)
{
printf("error");
return 0;
}
else
{
for ( j=L->last; j>=i-1; j-- )
L->data[j+1]=L->data[j];
L->data[i-1]=x;
L->last++;
}
}
return(1);
}
int deletee( sequenlist *L, int i
)
{
int j;
if ( (i<1) || ( i >
(L->last)+1 ) )
{
printf("error");
return 0;
}
else
{
for ( j=i; j<=L->last; j++ )
L->data[j-1]=L->data[j];
L->last--;
}
return (1);
}
int output_r( sequenlist *L
)
{
int i;
for (
i=L->last; i>=0; i-- )
printf("%d ",L->data[i]);
printf("\n");
return(1);
}
加载中,请稍候......