#define MAXSIZE 100/*顺序表的删除运算*/ #define OK 1 #define ERROR 0 typedef int ElemType; typedef struct { ElemType elem[MAXSIZE];//用数组模拟线性表 int last;//记录线性表中最后一个元素的位置 }SeqList; int DelList(SeqList *L,int i)/*删除第i位置上元素的值*/ { int k,e; if((i<1)||(i>L->last+1)) { printf("删除位置不合法!"); return ERROR; } e=L->elem[i-1]; for(k=i;k<=L->last;k++) L->elem[k-1]=L->elem[k]; L->last--; return OK; } void main() { SeqList l; int p,q,r,i,j; printf("请输入线性表的长度:"); scanf("%d",&p); l.last=p-1; printf("/n请输入线性表中各元素的值:"); for(i=0;i<=l.last;i++) scanf("%d",&l.elem[i]); printf("/n请输入要删除的元素位置:"); scanf("%d",&r); q=DelList(&l,r); if(q==1) { printf("删除成功!删除后的线性表为:"); for(j=0;j<=l.last;j++) printf("%d ",l.elem[j]); } else printf("删除失败!"); }