题目描述
将存储在顺序表中的长度为n的线性表中指定的数据全部删除。
输入
第一行为顺序表的长度n; 第二行为顺序表中的数据元素; 第三行为指定要删除的元素值。
输出
如果表不空,输出删除指定值后的线性表;如果删除后表空,则输出-1。
样例输入
8
11 22 33 44 44 55 44 66
44
样例输出
11 22 33 55 66
参考程序
#include<stdio.h>
#include<malloc.h>
typedef struct Node
{
int data[100];
int length;
}Sqlist;
void Init(Sqlist *&L)
{
L=(Sqlist *)malloc(sizeof(Sqlist));
L->length=0;
}
void Creat(Sqlist *&L,int n)
{
Init(L);
int i;
for(i=0;i<n;i++)
{
scanf("%d",&L->data[i]);
}
L->length=n;
}
void Delet(Sqlist *&L,int item)
{
int i=0,j;
while(L->data[i]!=item&&i<L->length)
i++;
for(j=i;j<L->length;j++)
{
if(L->data[j]!=item)
{
L->data[i++]=L->data[j];
}
}
L->length=i;
}
void print(Sqlist *L)
{
int i,j=0;
if(L->length == 0)
printf("-1");
else
{
for(i=0;i<L->length;i++)
{
printf("%d ",L->data[i]);
}
}
}
int main()
{
Sqlist *La;
int m;
int item;
scanf("%d",&m);
Creat(La,m);
scanf("%d",&item);
Delet(La,item);
print(La);
return 0;
}
注意
该程序仅供学习参考!