#include<iostream>
#include<algorithm>
#include<cstdio>
#include<string>
#include<vector>
#include<string.h>
#include<map>
#include<cmath>
#include<set>
#define ll long long
#define maxn 1000001
#define ull unsigned long long
using namespace std;
template<class Elemtype>
void output(vector<Elemtype>& A)
{
typename std::vector<Elemtype>::iterator it;
for(it=A.begin();it!=A.end();it++)
if(it==A.begin())cout<<*it;
else cout<<","<<*it;
cout<<endl;
}
template<class ElemType>
void Union_Sq(vector<ElemType>& A, vector<ElemType>& B)
{
output(A);output(B);
bool f=true;
typename std::vector<ElemType>::iterator itA=A.begin();
typename std::vector<ElemType>::iterator itB=B.begin();
while(itB!=B.end())
{
itA=A.begin();
while(itA!=A.end())
{
if(*itA==*itB)
{
f=false;
break;
}
itA++;
}
if(f)
A.push_back(*itB);
f=true;
itB++;
}
cout<<endl;
output(A);
}
int main()
{
int Type;
cin>>Type;
getchar();
if(Type!=0&&Type!=1&&Type!=2&&Type!=3)
cout<<"err"<<endl;
else {
string s;
if(Type==0)
{
vector<int> a1,a2;
getline(cin,s);
int num=0;
for(int i=0;i<s.size();i++)
{
if(s[i]==' ')
{
a1.push_back(num);
num=0;
}
else
num=num*10+s[i]-'0';
}
a1.push_back(num);
getline(cin,s);
num=0;
for(int i=0;i<s.size();i++)
{
if(s[i]==' ')
{
a2.push_back(num);
num=0;
}
else
num=num*10+s[i]-'0';
}
a2.push_back(num);
Union_Sq(a1,a2);
}
else if(Type==1)
{
vector<double> b1,b2;
getline(cin,s);
double num=0.0,sum=0.0;
int f=0,wei=0;
for(int i=0;i<s.size();i++)
{
if(s[i]==' ')
{
num=num/pow(10,wei);
b1.push_back(num);
num=0.0;f=0;wei=0;
}
else if(s[i]=='.')
f=1;
else
{
num=num*10+s[i]-'0';
if(f)
wei++;
}
}
num=num/pow(10,wei);
b1.push_back(num);
getline(cin,s);
num=0.0;sum=0.0;
f=0;wei=0;
for(int i=0;i<s.size();i++)
{
if(s[i]==' ')
{
num=num/pow(10,wei);
b2.push_back(num);
num=0.0;f=0;wei=0;
}
else if(s[i]=='.')
f=1;
else
{
num=num*10+s[i]-'0';
if(f)
wei++;
}
}
num=num/pow(10,wei);
b2.push_back(num);
Union_Sq(b1,b2);
}
if(Type==2)
{
vector<char> c1,c2;
getline(cin,s);
char ch;
for(int i=0;i<s.size();i++)
{
ch=s[i];
if(ch!=' ')
c1.push_back(ch);
}
getline(cin,s);
for(int i=0;i<s.size();i++)
{
ch=s[i];
if(ch!=' ')
c2.push_back(ch);
}
Union_Sq(c1,c2);
}
if(Type==3)
{
vector<string> d1,d2;
getline(cin,s);
string k;
k.clear();
for(int i=0;i<s.size();i++)
{
if(s[i]==' ')
{
d1.push_back(k);
k.clear();
}
else
k+=s[i];
}
d1.push_back(k);
getline(cin,s);
k.clear();
for(int i=0;i<s.size();i++)
{
if(s[i]==' ')
{
d2.push_back(k);
k.clear();
}
else
k+=s[i];
}
d2.push_back(k);
Union_Sq(d1,d2);
}
}
return 0;
}
顺序表ADT模板简单应用算法设计:线性表的合并
最新推荐文章于 2023-10-05 17:03:47 发布