题目描述
将存储在顺序表中的长度为n的线性表中指定的数据全部删除。
输入
第一行为顺序表的长度n; 第二行为顺序表中的数据元素; 第三行为指定要删除的元素值。
输出
如果表不空,输出删除指定值后的线性表;如果删除后表空,则输出-1。
样例输入
8
11 22 33 44 44 55 44 66
44
样例输出
11 22 33 55 66
#include<malloc.h>
#include<stdio.h>
#define MaxSize 1000
typedef struct
{
int data[MaxSize];
int length=0;
}SqList;
void Init(SqList*&L)
{
L=(SqList*)malloc(sizeof(SqList));
L->length=0;
}
void display(SqList*L,int key)//打表
{
bool flag=false;//假定没有数据输出
for(int i=0;i<L->length;i++)
{
if(L->data[i]!=key)
{
printf("%d ",L->data[i]);
flag=true;//标明有数据输出
}
}
if(flag==false)//如果没有输出,则表示表为空
{
printf("-1");
}
}
int main()
{
SqList *L;
Init(L);
int n,key;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&L->data[L->length++]);
}
scanf("%d",&key);
display(L,key);
}