순서 표 의 응용
2330 단어 데이터 구조 (트 리 앞 부분)
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
가능 한 한 적은 시간 과 보조 저장 공간 을 사용 하 다.
// & , 。
// x , . , :x.num
// x , -> , :x->num
// x x->num , 。
#include
#include
#include
#include
using namespace std;
typedef int Elemtype;
typedef struct
{
Elemtype *elem;
int length;
int listsize;
}Sqlist;
int initlist_Sq(Sqlist *L,int maxsize)
{
L->elem=(Elemtype*)malloc(sizeof(Elemtype)*maxsize);
if(NULL == L->elem)
return -1;
else
{
L->length=0;
L->listsize=maxsize;
}
return 0;
}
void creat(Sqlist *L,int n)
{
int i;
for(i=0;i>L->elem[i];
}
L->length=n;
}
void printf(Sqlist *L)
{
int i;
for(i=0;ilength-1;i++)
printf("%d ",L->elem[i]);
printf("%d
",L->elem[L->length-1]);
}
void del(Sqlist *L)// L 。
{
int i,j,k;
for(i=0;i<=L->length-1;i++)
{
for(j=i+1;j<=L->length-1;j++)
{
if(L->elem[i]==L->elem[j])
{
for(k=j+1;k<=L->length-1;k++)
{
L->elem[k-1]=L->elem[k];
}
L->length--;
j--;
}
}
}
}
int main()
{
Sqlist L;// L 。
int n;
cin>>n;
initlist_Sq(&L,1001);
creat(&L,n);
del(&L);
printf("%d
",L.length);//
printf(&L);
return 0;
}