#include <stdio.h>
#include <conio.h>
typedef int DataType ;
# define maxnum 20
typedef struct
{int data[maxnum];
int length;
}SeqList;
int insert(SeqList &L , int i , DataType x)
{ int j ;
if( i<0 || i>(L).length +1)
{ printf(" \n i 值不合法 ! ");
return 0;
}
if((L).length >=maxnum-1)
{ printf(" \n 表满不能插入!");
return 0;
}
for(j=(L).length;j>=i;j--) (L).data[j+1]=(L).data[j];
(L).data[i] = x;
(L).length++;
return 1;
}
int delete1( SeqList L ,int i)
{ int j ;
if( i<0|| i>(L).length )
{ printf(" \n 删除位置错误 ! ") ;
return 0;
}
for(j=i+1;j<=(L).length;j++)
(L).data[j-1] =(L).data[j];
(L).length--;
return 1;
}
void creatlist(SeqList *L)
{ int n , i ;
printf("请输入顺序表 L 的数据个数:\n") ;
scanf("%d" , &n) ;
for(i=0 ; i<n ; i++)
{ printf("data[%d] =" , i) ;
scanf("%d",&((*L).data[i]));
}
(*L).length=n-1;
printf("\n") ;
}
printout(SeqList *L)
{ int i ;
for (i=0 ; i<=(*L).length ; i++)
{ printf(" data[%d]=", i) ;
printf("%d", (*L).data[i]);
}
printf("\n");
return 1;
}
main()
{ SeqList *L ;
char cmd ;
int i , x;
//clrscr() ;
creatlist(L);
do
{
printf("\ni , I ----- 插入\n") ;
printf("d , D ----- 删除\n") ;
printf("q , Q ----- 退出\n") ;
do
{cmd=getchar() ;
}while((cmd!='i')&&(cmd!='I')&&(cmd!='d')&&(cmd!='D')&&(cmd!='q')&&(cmd!='Q'));
switch(cmd)
{ case 'i':
case 'I':
printf("\nPlease input the DATA: ");
scanf("%d",&x) ;
printf("\nWhere? ");
scanf("%d",&i) ;
insert(*L,i,x) ;
printout(L);
break ;
case 'd':
case 'D' :
printf("\nWhere to Delete? ");
scanf("%d",&i);
delete1(*L,i);
printout(L);
break ;
}
}while((cmd!='q')&&(cmd!='Q'));
return 1;
}