#include <iostream>
#include <stdlib.h>
#define MAX 5
using namespace std;
typedef struct node
{
int* base;
int lengh;
int size;
}qnode,*pnode;
void init(qnode &head)
{
head.base=(int*)malloc(MAX*sizeof(int));
if(head.base==NULL)
cout<<"erro";
head.lengh=0;
head.size=MAX;
}
void traverse(qnode &head)
{
int i=0;
for(i=0;i<head.lengh;i++)
{
cout<<head.base[i]<<' ';
}
}
void cin_(qnode &head)
{
int i=0;
for(i=0;i<head.size;i++)
{
cin>>head.base[i];
head.lengh++;
}
}
void conmmon(qnode &head1,qnode &head2,qnode &head3)
{
init(head3);
int i,j,k=0;
for(i=0;i<head1.lengh;i++)
{
for(j=0;j<head2.lengh;j++)
{
if(head2.base[j]==head1.base[i])
{
head3.base[k]=head1.base[i];
k++;
break;//当遇到第一个相同的数字就终止,防止有两个相同的时候两个数字重复进入head3
}
}
}
for(i=0;i<k;i++)
{
cout<<head3.base[i]<<' ';
}
}
void union_(qnode &head1,qnode &head2,qnode &head3)
{
int i=0,j=0,k=0,l=0;
int *new_;
new_=(int*)realloc(head3.base,(head3.size+MAX)*sizeof(int));
head3.base=new_;
for(i=0;i<head1.lengh;i++)
{
head3.base[i]=head1.base[i];
}
head3.lengh=head1.lengh;
for(j=0;j<head2.lengh;j++)
{
for(k=0;k<i;k++)
{
if(head2.base[j]==head3.base[k])
{
l=1;
break;
}
}
if(l==1)
l=0;
else if(l==0)
{
head3.base[i]=head2.base[j];
head3.lengh++;
i++;
}
}
for(i=0;i<head3.lengh;i++)
{
cout<<head3.base[i];
}
}
int main()
{
qnode head1,head2,head3;
init(head1);
init(head2);
init(head3);
cin_(head1);
cin_(head2);
//conmmon(head1,head2,head3);
// traverse(head3);
// union_(head1,head2,head3);
}
3.4 3.5
最新推荐文章于 2024-04-01 16:57:31 发布