完善教材中数组顺序表初始化、特定位置插入元素、删除特定值等操作#include <iostream>using namespace std;//顺序表删除所有值为x的元素#define Maxsize 100typedef int ElemType;//定义结构体数组typedef struct{ ElemType elem[Maxsize]; int last;}SeqList;//初始化数组void initList(SeqList *L){ ElemType e; L->last=0; PRintf("请输入元素:/n"); scanf("%d",&e); while(e!=0) { if((L->last)>Maxsize) printf("表已满,无法继续输入"); L->elem[L->last]=e; (L->last)++; scanf("%d",&e); } L->last--;}//在数组的第i个位置插入元素eint InsList(SeqList *L,int i,ElemType e){ int k; if(i<1||i>L->last) { printf("插入位置i不合法"); return 0; } if((L->last)>Maxsize) { printf("表已满"); return 0; } for(k=L->last;k>=i;k--) { L->elem[k+1]=L->elem[k]; } L->elem[k+1]=e; L->last++; return 0;}//删除数组值为x的元素void delx(SeqList *L,int x){ int i=0,j=0; while(i<=(L->last)) { if((L->elem[i])!=x) { L->elem[j]=L->elem[i]; i++; j++; } else i++; } L->last=j-1;}//打印数组void show(SeqList *L){ int i=0; for(i=0;i<=L->last;i++) { printf("%d ",L->elem[i]); } printf("/n");}int main(){ int i; ElemType e1,e2; SeqList L; initList(&L); printf("%d/n",L.last); printf("请输入要插入的数和插入的位置:"); scanf("%d %d",&e1,&i); InsList(&L,i,e1); printf("插入后的数组为:/n"); show(&L); printf("请输入要删除的数:"); scanf("%d",&e2); delx(&L,e2); printf("删除后的数组为:/n"); show(&L); return 0;}实验结果如下:
新闻热点
疑难解答