数据结构上机测试1:顺序表的应用

    xiaoxiao2022-07-07  208

    数据结构上机测试1:顺序表的应用

    Time Limit: 1000 ms Memory Limit: 65536 KiB

    Submit Statistic Discuss

    Problem Description

    在长度为n(n<1000)的顺序表中可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只能有一个)。

    Input

    第一行输入表的长度n; 第二行依次输入顺序表初始存放的n个元素值。

    Output

    第一行输出完成多余元素删除以后顺序表的元素个数; 第二行依次输出完成删除后的顺序表元素。

    Sample Input

    12 5 2 5 3 3 4 2 5 7 5 4 3

    Sample Output

    5 5 2 3 4 7

    Hint

    用尽可能少的时间和辅助存储空间。

    Source

     思路:

    先建一个a数组存数据,然后遍历如果相同就n--。

    代码如下:

    #include<stdio.h> #include<string.h> #include<stdlib.h> int main() { int a[1001] ; int n , i , j ; int k ; scanf("%d",&n) ; for( i = 0 ; i< n ; i++) { scanf("%d",&a[i]) ; } //遍历过程 for( i = 0 ; i< n ; i++) { for(j = i+1 ;j<n ; j++ ) { if(a[i]==a[j]) { k = j ; for(;k<n-1 ; k++) { a[k] =a[k+1] ; } n--; j-- ;//回到上一个数,避免遍历不全 } } } printf("%d\n",n) ; for(i = 0 ; i< n ; i++) { if(i==0) printf("%d",a[i]) ; else printf(" %d",a[i]) ; } return 0 ; } /*************************************************** ****************************************************/

     

    最新回复(0)