【学习笔记】数据结构顺序表,求交并集

来源:互联网 发布:php类和对象 编辑:程序博客网 时间:2024/05/17 06:36

描述:已知顺序表A,B。
用顺序表表示A=A与B的交并集。

#include<stdio.h>#include<stdlib.h>#define MAXSIZE 10typedef struct node{    int date[MAXSIZE];    int length;}Lseqlist,*Pseqlist; //初始化顺序表Pseqlist init_Seqlist(void){    Pseqlist H;    H=(Pseqlist)malloc(sizeof(Lseqlist));    if(H){        H->length=0;    }     return H;}//新建顺序表 Pseqlist build_Seqlist(Pseqlist H,int length){    for(int i=0;i<length;i++){        scanf("%d",&H->date[i]);        H->length++;    }    return H;}//求表长 void length_Seqlist(Pseqlist H){    printf("%d",H->length); }//删除某项数据项 Pseqlist delete_Seqlist(Pseqlist H,int position){    for(int i=position;i<H->length;i++){        H->date[i]=H->date[i+1];    }    H->length--;    return H;}//插入某项数据项Pseqlist insert_Seqlist(Pseqlist H,int position,int x){    for(int j=H->length-1;j>=position;j--){        H->date[j+1]=H->date[j];    }    H->length++;    H->date[position]=x;    return H;}//查找某项数据项int find_Seqlist(Pseqlist H,int find){    int i=0;    while(i<H->length && H->date[i]!=find){        i++;    }    if(i>=H->length){        return 0;    }else{        return (i+1);    }   }//打印顺序表 void print_Seqlist(Pseqlist H){    for(int i=0;i<H->length;i++){        printf("%d ",H->date[i]);    }}//两个顺序表求交集Pseqlist intersection_Seqlist(Pseqlist A,Pseqlist B){    for(int i=0;i<A->length;i++){        if(!find_Seqlist(B,A->date[i])){            delete_Seqlist(A,i);        }    }    return A; }//两个顺序表求并集Pseqlist union_Seqlist(Pseqlist A,Pseqlist B){    for(int i=0;i<B->length;i++){        if(!find_Seqlist(A,B->date[i])){            insert_Seqlist(A, A->length,B->date[i]);        }    }    return A;}  int main(void){    Pseqlist H1,H2,Union,Intersection;    H1=init_Seqlist();    H1=build_Seqlist(H1,4);    length_Seqlist(H1);    printf("\n");    H1=delete_Seqlist(H1,2);    length_Seqlist(H1);    printf("\n");    print_Seqlist(H1);    printf("\n");    H1=insert_Seqlist(H1,3,7);    length_Seqlist(H1);    printf("\n");    print_Seqlist(H1);    H2=init_Seqlist();    H2=build_Seqlist(H2,4);//  Intersection=intersection_Seqlist(H1,H2);//  print_Seqlist(Intersection);    Union=union_Seqlist(H1,H2);    print_Seqlist(Union);    return 0;} 
0 0
原创粉丝点击