数据结构入门----集合的交、并、差

    技术2025-04-30  17

    一. 实验要求 通过键盘,分别输入两个数据元素类型为正整数的集合A和B,以负数输入为结束条件,输出两个集合的交、并、差。从程序完善性上考虑,集合元素输入时,要有检查元素重复的功能。集合可以用数组也可以用链表存储。 二. 实验目的 通过该实验,熟练掌握循环结构、循环控制条件、分支结构和数组/链表基本操作的实现,掌握函数参数设定的有关内容,体会到用数组存储集合时,需要记录集合元素的个数,否则输出结果会出现数据越界现象。 三. 设计思想

    分别将数据输入到2个int类型的数组中,在输入过程中判断输入类型是否有误。建立交并插集的函数,各一个,然后进行数组遍历,找到相同元素就把指针往前移动一位,最后把数组输出即可

    四. 主要源代码

    #include "iostream" using namespace std; void JiaoJi(int a[], int b[], int m, int n); void BingJi(int a[], int b[], int m, int n); void ChaJi(int a[], int b[], int m, int n); void main() { int A[1000],B[1000]; int i=0,j=0,x=0,count1=0,count2=0; cout<<"请连续输入集合A的数据,输入任意一个负数结束。"<<endl; for(i=0;i<=1000;i++) { cin>>A[i]; if(!cin) { cout<<"您输入的不是整数类型,请重新输入!"<<endl; cin.clear(); cin.sync(); } else { if(A[i]<0) { count1=i; break; } else { cout<<"您刚才输入的是第"<<i+1<<"个整数。"<<endl; } } }; cout<<"集合A的数据为:"; for(i=0;i<count1;i++) { cout<<A[i]<<" "; } cout<<endl; cout<<"请连续输入集合B的数据,输入任意一个负数结束。"<<endl; for(i=0;i<=1000;i++) { cin>>B[i]; if(!cin) { cout<<"您输入的不是整数类型,请重新输入!"<<endl; cin.clear(); cin.sync(); } else { if(B[i]<0) { count2=i; break; } else { cout<<"您刚才输入的是第"<<i+1<<"个整数。"<<endl; } } }; cout<<"集合B的数据为:"; for(i=0;i<count2;i++) { cout<<B[i]<<" "; } cout<<endl; JiaoJi(A,B,count1,count2); BingJi(A,B,count1,count2); ChaJi(A,B,count1,count2); } void JiaoJi(int a[], int b[], int m, int n) { cout<<"两集合交集:"; for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { if(a[i]==b[j]) { cout<<a[i]<<' '; break; } } } cout<<endl; } void BingJi(int a[], int b[], int m, int n) { bool checkStatus; cout<<"两集合并集:"; for(int i=0;i<m;i++) { checkStatus=true; for(int j=0;j<n;j++) { if(a[i]==b[j]) { checkStatus=false; break; } } if(checkStatus) { cout<<a[i]<<' '; } } for(int j=0;j<n;j++) { cout<<b[j]<<' '; } cout<<endl; } void ChaJi(int a[], int b[], int m, int n) { bool checkStatus; cout<<"两集合差集:"; for(int i=0;i<m;i++) { checkStatus=true; for(int j=0;j<n;j++) { if(a[i]==b[j]) { checkStatus=false; break; } } if(checkStatus) { cout<<a[i]<<' '; } } cout<<endl; }

    五. 调试与测试数据

    Processed: 0.014, SQL: 9