1. 程式人生 > >順序表算法題

順序表算法題

!= sca define fin std truct include spa n個元素

在長度為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\n",len); 24
printf("%d",L.data[0]); 25 for(i=1;i<len;i++) 26 printf(" %d",L.data[i]); 27 printf("\n"); 28 } 29 return 0; 30 }

順序表算法題