如标题,只是一个简单的顺序表的插入和删除,希望能帮到各位初学的同学。只起参考作用
#include#include typedef struct//定义顺序表的结构体类型 { int elem[20];//定义一个存放数据的数组 int last;//last在本段代码中相当于长度 }SeqList; int DelList(SeqList *L)//【删除操作】 { int k,i; printf("请用户输入删除位置: "); scanf("%d",&i); if( (i<1) || (i>L->last) ) { printf("删除位置不合法!!!n"); return (0); } for(k=i;k<=L->last;k++) L->elem[k-1]=L->elem[k]; L->last--; return 1; } int InsList(SeqList *L)//【插入操作】 { int k,i,e; printf("请用户输入插入元素位置和插入元素(格式如:3 3): "); scanf("%d %d",&i,&e); if( (i<1) || (i>L->last+1) ) { printf("插入位置不合法!!!n"); return (0);//插入位置不合法 } for(k=L->last;k>=i-1;k--) L->elem[k+1]=L->elem [k]; L->elem [i-1]=e; L->last ++; return (1); } void Display(SeqList *L)//【输出顺序表】 { int i; printf("线性表中的元素如下:n"); for(i=0;i<=L->last-1;i++) printf("%d ",L->elem[i]); printf("n "); } main() { int i, j=0 ,a=1; SeqList L; L.elem[0]=0 ; L.last=0 ; printf("请输入5个数字:n"); for( i=0 ; i<=4 ; i++) { scanf("%d",&j); L.elem[i]=j; L.last++; } printf("n线性表的长度为:%dn",L.last); Display(&L);//先填充顺序表 printf("选择:输入1 ->删除,输入2-> 插入操作,输入3->退出n"); while (a!=3) { printf("请用户做出选择:"); scanf("%d",&a); switch (a) { case (1)://【删除】 { DelList(&L); Display(&L);break; } case (2)://【插入】 { InsList(&L); Display(&L);break; } case (3):break; } printf("n ");//纯粹为了美观 } printf("**已退出,感谢您的使用n**"); }
运行结果:



