//3. (简答题) 设计一个算法,从线性表中删除自第i个元素开始的k个元素,其中线性表用顺序表L存储。
#include<stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef int ElemType;
//声明 顺序表类型
typedef struct{
ElemType date[MaxSize];
int length;
}SqList;
//创建 顺序表
void CreatList(SqList *&L,ElemType a[],int n){
int i,k=0;
L=(SqList *)malloc(sizeof(SqList));
while(i<n){
L->date[k]=a[i];
k++;
i++;
}
L->length=k;
}
//初始化线性表
void InitList(SqList *&L){
L=(SqList *)malloc(sizeof(SqList));
L->length=0;
}
//删除 从第i个起k个数据元素
int ListDelete(SqList *&L,int i,int k){
int j;
if(i<1||i>L->length||i+k>L->length){
printf("出错!请检查是否超出范围!!!");
return 0;
}
else{
i--;
for(j=i;j<L->length-1-k;j++){
L->date[j]=L->date[j+k];
}
L->length=L->length-k;
return 0;
}
}
//主函数
int main(){
SqList *L;
int n,i,k;
int num;
printf("请输入你要输入多少个数据\n");
scanf("%d",&num);
InitList(L);//初始化线性表
for(n=0;n<num;n++){
printf("请输入链表第%d个元素",n+1);
scanf("%d",&L->date[n]);
}
L->length=num;
printf("输入从第几个元素删除\n");
scanf("%d",&i);
printf("输入删除多少个元素\n");
scanf("%d",&k);
ListDelete(L,i,k);
printf("删除后的元素为\n");
for(n=1;n<=L->length;n++){
printf("%d,",L->date[n-1]);
}
}
3. (简答题) 设计一个算法,从线性表中删除自第i个元素开始的k个元素,其中线性表用顺序表L存储。
于 2022-10-27 00:00:00 首次发布