0
点赞
收藏
分享

微信扫一扫

SWUST OJ 1038: 顺序表中重复数据的删除

_karen 2022-01-06 阅读 39

题目描述

将存储在顺序表中的长度为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;
}

注意

该程序仅供学习参考!

举报

相关推荐

0 条评论