SDUT3325顺序表应用2:多余元素删除之建表算法

来源:互联网 发布:linux gcc 编译 编辑:程序博客网 时间:2024/05/23 22:47

顺序表应用2:多余元素删除之建表算法

Time Limit: 3ms   Memory limit: 600K  有疑问?点这里^_^

题目描述

一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只保留第一个)。
要求:
       1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能;
       2、本题的目标是熟悉在顺序表原表空间基础上建新表的算法,要在原顺序表空间的基础上完成完成删除,建表过程不得开辟新的表空间;
       3、不得采用原表元素移位删除的方式。

输入

 第一行输入整数n,代表下面有n行输入;
之后输入n行,每行先输入整数m,之后输入m个数据,代表对应顺序表的每个元素。

输出

  输出有n行,为每个顺序表删除多余元素后的结果

示例输入

45 6 9 6 8 93 5 5 55 9 8 7 6 510 1 2 3 4 5 5 4 2 1 3

示例输出

6 9 859 8 7 6 51 2 3 4 5

#include <stdio.h> #include <stdlib.h> #define maxsize 10000 typedef int Element_int; typedef struct {     Element_int *elem;     int length;     int listsize; }Sq; int Initialize_List(Sq *L); void Creat_List(Sq *L,int len); void Re_List(Sq *L,Sq *New_L); void Print_List(Sq *L); int main() {     Sq L,New_L;     int n,m;     while(~scanf("%d",&n))     {         while(n--)         {             scanf("%d",&m);             Initialize_List(&L);             Creat_List(&L,m);             Re_List(&L,&New_L);         }     } } int Initialize_List(Sq *L) {     L->elem=(Element_int *)malloc(maxsize*sizeof(Element_int));     if(!L->elem) return -1;     L->length=0;     L->listsize=maxsize;     return 0; } void Creat_List(Sq *L,int len) {     L->length=len;     for(int i=0;i<len;i++)        scanf("%d",&L->elem[i]); } void Re_List(Sq *L,Sq *New_L) {     Element_int *p,*q,*s;     Initialize_List(New_L);//初始化新表;     s=&(L->elem[0]);     for(p=s;p<(s+L->length);p++)     {         int flag=0;         for(q=New_L->elem;q<New_L->elem+New_L->length;q++)         {             if(*p==*q)             {                 flag=1;                 break;             }             flag=0;         }         if(flag==0)         {             *q=*p;             New_L->length++;         }     }     Print_List(New_L); } void Print_List(Sq *L) {     for(int i=0;i<L->length;i++)        printf(i==L->length-1?"%d\n":"%d ",L->elem[i]); }


0 0
原创粉丝点击