资源描述:
《作业二 从顺序表中删除自第i个元素开始的k个元素》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、从顺序表中删除自第i个元素开始后的k个元素,假设顺序表中的元素全部为数字#include#include#include#defineERROR0#defineTRUE1#defineElemTypeint#defineMAXSIZE100/*此处的宏定义常量表示线性表可能达到的最大长度*/typedefstruct{ElemTypeelem[MAXSIZE];/*线性表占用的数组空间*/intlast;/*记录线性表中最后一个元素在数组elem[]中的位置(下标值),空表置为-1*/}SeqList;intSha
2、nChu(SeqList*L,inti,intk){intm,n;if(i<1
3、
4、i>L->last+1){printf("删除位置不合理");return(ERROR);}n=i+k-1;if(n<=L->last){for(m=i+k-1;m<=L->last;m++){L->elem[m-k]=L->elem[m];}L->last=L->last-k;return(TRUE);}else{L->last=i-2;return(TRUE);}}voidmain(){SeqList*l;intt;intp,q,r;inti;l=(SeqList*)malloc(s
5、izeof(SeqList));printf("请输入线性表的长度:");scanf("%d",&r);l->last=r-1;printf("请输入线性表的各元素值:");for(i=0;i<=l->last;i++){scanf("%d",&l->elem[i]);}printf("请输入要删除的元素位置:");scanf("%d",&p);printf("请输入要删除此后多少个元素");scanf("%d",&q);t=ShanChu(l,p,q);if(t==1){for(i=0;i<=l->last;i++)printf("%d",l->elem[i
6、]);printf("");}elseprintf("输入错误");}从顺序表中删除自第i个元素开始后的k个元素,顺序表中可以是任何字符#include#include#include#defineERROR0#defineTRUE1#defineElemTypechar#defineMAXSIZE100/*此处的宏定义常量表示线性表可能达到的最大长度*/typedefstruct{ElemTypeelem[MAXSIZE];/*线性表占用的数组空间*/intlast;/*记录线性表中最后一个元素在数组el
7、em[]中的位置(下标值),空表置为-1*/}SeqList;intShanChu(SeqList*L,inti,intk){intm,n;if(i<1
8、
9、i>L->last+1){printf("删除位置不合理");return(ERROR);}n=i+k-1;if(n<=L->last){for(m=i+k-1;m<=L->last;m++){L->elem[m-k]=L->elem[m];}L->last=L->last-k;return(TRUE);}else{L->last=i-2;return(TRUE);}}voidmain(){SeqList*l;in
10、tt;intp,q,r;inti;l=(SeqList*)malloc(sizeof(SeqList));printf("请输入线性表的长度:");scanf("%d",&r);getchar();l->last=r-1;printf("请输入线性表的各元素值:");for(i=0;i<=l->last;i++){l->elem[i]=getchar();}getchar();printf("请输入要删除的元素位置:");scanf("%d",&p);printf("请输入要删除此后多少个元素");scanf("%d",&q);t=ShanChu(l,p,q)
11、;if(t==1){for(i=0;i<=l->last;i++)printf("%c",l->elem[i]);printf("");}elseprintf("输入错误");}