noj3;顺序表的删除

noj3;顺序表的删除_第1张图片
noj3;顺序表的删除_第2张图片

//顺序表的删除
#include"stdio.h"
#include"stdlib.h"
#define maxsize 100

typedef struct Sqlist{
     
    int elem[maxsize];
    int length;
}Sqlist,*SqlistPtr;


void Sqlist_init(SqlistPtr L){
     
    for(int i = 0;i < L->length;i++)
    {
     
        scanf("%d",&L->elem[i]);
    }

}

void Sqlsit_Union(SqlistPtr la,SqlistPtr lb,SqlistPtr lf){
     //求a,b交集并存入lf中
    int i=0,j=0;
    lf->length = 0;

    while(i<la->length && j<lb->length){
     
        if(la->elem[i] < lb->elem[j])
        {
     
            i++;
        }
        else if(la->elem[i] > lb->elem[j])
        {
     
            j++;
        }
        else
        {
     
            lf->elem[lf->length]= la->elem[i];
            i++;
            j++;
            lf->length++;
        }
    }
}

void Sqlsit_cha(SqlistPtr la,SqlistPtr lb,SqlistPtr lf){
     //求差集,la-lb
    int i = 0,j = 0,k=0;
    int flag = 0;
    lf->length = 0;

    while(i < la->length){
     
        for(;j < lb->length;j++)
        {
     
            if(la->elem[i] < lb->elem[j])
            {
     
                break;
            }
            else if(la->elem[i] == lb->elem[j])
            {
     
                flag = 1;
                break;
            }
        }
        
        if(flag==0)
        {
     
            lf->elem[k] = la->elem[i];
            k++;
            lf->length++;
        }
        else
        {
     
            flag = 0;
        }
        
        i++;
    }

}

int main(){
     
    SqlistPtr l1,l2,l3,lm,lf;
    int a[maxsize];
    l1 = (SqlistPtr)malloc(sizeof(Sqlist));
    l2 = (SqlistPtr)malloc(sizeof(Sqlist));
    l3 = (SqlistPtr)malloc(sizeof(Sqlist));
    lm = (SqlistPtr)malloc(sizeof(Sqlist));
    lf = (SqlistPtr)malloc(sizeof(Sqlist));

    scanf("%d %d %d",&l1->length,&l2->length,&l3->length);
    Sqlist_init(l1);
    Sqlist_init(l2);
    Sqlist_init(l3);
    
    Sqlsit_Union(l2,l3,lm);
    Sqlsit_cha(l1,lm,lf);

    for(int i = 0;i<lf->length;i++){
     
        printf("%d ",lf->elem[i]);
    }

    free(l1);
    free(l2);
    free(l3);
    free(lm);
    free(lf);
    return 0;
}

你可能感兴趣的:(noj)