您的位置:首页 > 其它

试设计一个算法,删除一个顺序表从第i个元素开始的k个元素

2015-05-15 22:03 288 查看
试设计一个算法,删除一个顺序表从第i个元素开始的k个元素

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define OK 1
#define ERROR 0
#define MAXSIZE 20
typedef int ElemType;
typedef int Status;

typedef struct
{
ElemType data[MAXSIZE];
int Length;
}SqList;

//初始化顺序表
Status InitSqList(SqList * L)
{
L->Length=0;
return OK;
}

//顺序表的建立
Status Create(SqList * L,int n)
{
srand(time(0));
for(int i=0;i<n;i++)
{
L->data[i]=rand()%100+1;
L->Length++;
}
return OK;
}

//顺序表的删除
Status Delete(SqList * L,int Location)
{
if(L->Length==0)    //线性表为空
return ERROR;
if(Location<L->Length)
{
for(int i=Location;i<L->Length;i++)
{
L->data[i-1]=L->data[i];
}
L->Length--;
}

return OK;
}

void Print(SqList * L)
{
for(int i=0;i<L->Length;i++)
{
printf("%d ",L->data[i]);
}
printf("\n");
}

int main()
{
SqList L;
int ElemNumber;
int Location,Number;
InitSqList(&L);
printf("请输入元素个数:\n");
scanf("%d",&ElemNumber);
Create(&L,ElemNumber);
Print(&L);
printf("请输入删除的位置和删除的元素个数:\n");
scanf("%d%d",&Location,&Number);
if(Number>=L.Length)
{
printf("输入有误\n");
return 0;
}
else
{
while(Number--)
{
Delete(&L,Location);
}
}
Print(&L);
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐