顺序表算法题
Posted suqf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺序表算法题相关的知识,希望对你有一定的参考价值。
在长度为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
1 #include <stdio.h> 2 #define Maxsize 1000 3 typedef struct{ 4 int data[Maxsize]; 5 int length; 6 }List; 7 int main(void){ 8 List L; 9 int i,j,len; 10 while(scanf("%d",&len)!=EOF){//线性表的长度 11 L.length=len; 12 for(i=0;i<len;i++){ 13 scanf("%d",&L.data[i]);//输入的元素值 14 if(i>0){ 15 for(j=0;j<i;j++){ 16 if(L.data[i]==L.data[j]){ 17 i--; 18 len--; 19 } 20 } 21 } 22 } 23 printf("%d ",len); 24 printf("%d",L.data[0]); 25 for(i=1;i<len;i++) 26 printf(" %d",L.data[i]); 27 printf(" "); 28 } 29 return 0; 30 }
以上是关于顺序表算法题的主要内容,如果未能解决你的问题,请参考以下文章