순서 표 의 응용

순서 표 의 응용
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; }

좋은 웹페이지 즐겨찾기