#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);
}
							
		 
						
		加载中,请稍候......