设计算法,实现从顺序表中删除自i个元素开始的k个元素,若元素不足k个,则删除自第i个元素开始的所有元素. 5

 我来答
匿名用户
2020-03-14
展开全部
#include <stdio.h>#define MAXSIZE 100typedef struct{
int elem[MAXSIZE]; int last;
} SeqList;void deletelist(SeqList *l,int i,int k);int main(){ int i,k,j=0;
SeqList *l;
SeqList a;
l=&a; scanf("%d%d",&i,&k);//输入i和k
while(scanf("%d",&l->elem[j])!=EOF)
j++;//输入顺序表内容
l->last=j-1;
deletelist(l,i,k); return 0;
}void deletelist(SeqList *l,int i,int k){ int j; if(i>l->last+1||i<1) printf("删除位置不合法"); else
{ if(k>=l->last-i+2)
{ for(j=i-1; j<=l->last; j++)
l->elem[j]=0;
l->last=i-2;
} else
{ for(j=i-1; j<i-1+k; j++)
l->elem[j]=0; for(j=i-1; j<=l->last-k; j++)
l->elem[j]=l->elem[j+k];
l->last=j-1;
} for(j=0; j<=l->last; j++) printf("%d\n",l->elem[j]);
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式