主题:这个程序咋改?
这个程序是求两个集合的并集:
class alist{
public:
alist(int size){
maxsize=size;
listsize=fence=0;
listarray=new int[maxsize];
};
int rightlength(){return listsize-fence;};
void next(){
if(fence<=maxsize)
fence++;
}
private:
int maxsize;
int listsize;
int fence;
int size;
int defaultlistsize;
int* listarray;
};
主函数:
#include<iostream.h>
#include"head.h"
main()
{ int tempa=0,tempb=0,tempc=0,temp=0;
alist la(7);
alist lb(8);
alist lc(15);
la.listarray[7]={3,4,7,8,9,10,11};
lb.listarray[8]={2,5,6,7,8,10,12,15};
while((la.rightlength()>0)&&(lb.rightlength>0))
if(la.listarray[tempa]>lb.listarray[tempb])
lc.listarray[tempc]=lb.listarray[tempb]
tempc++;
tempb++;
else if(la.listarray[tempa]<lb.listarray[tempb])
lc.listarray[tempc]=la.listarray[tempa]
tempc++;
tempa++;
else
la.next();
tempa++;
while(la.rightlength()!=0)
{
for(;tempa<=la.rightlength();tempa++)
lc.listarray[tempc++]=la.listarray[tempa++];
}
while(lb.rightlength()!=0)
{
for(;tempb<=lb.rightlength();tempb++)
lc.listarray[tempc++]=lb.listarray[tempb++];
}
cout<<"listc"<<"(";
for(temp=0;temp<=lc.rightlength();temp++)
cout<<lc.array[temp]<<" ";
cout<<")";
}
class alist{
public:
alist(int size){
maxsize=size;
listsize=fence=0;
listarray=new int[maxsize];
};
int rightlength(){return listsize-fence;};
void next(){
if(fence<=maxsize)
fence++;
}
private:
int maxsize;
int listsize;
int fence;
int size;
int defaultlistsize;
int* listarray;
};
主函数:
#include<iostream.h>
#include"head.h"
main()
{ int tempa=0,tempb=0,tempc=0,temp=0;
alist la(7);
alist lb(8);
alist lc(15);
la.listarray[7]={3,4,7,8,9,10,11};
lb.listarray[8]={2,5,6,7,8,10,12,15};
while((la.rightlength()>0)&&(lb.rightlength>0))
if(la.listarray[tempa]>lb.listarray[tempb])
lc.listarray[tempc]=lb.listarray[tempb]
tempc++;
tempb++;
else if(la.listarray[tempa]<lb.listarray[tempb])
lc.listarray[tempc]=la.listarray[tempa]
tempc++;
tempa++;
else
la.next();
tempa++;
while(la.rightlength()!=0)
{
for(;tempa<=la.rightlength();tempa++)
lc.listarray[tempc++]=la.listarray[tempa++];
}
while(lb.rightlength()!=0)
{
for(;tempb<=lb.rightlength();tempb++)
lc.listarray[tempc++]=lb.listarray[tempb++];
}
cout<<"listc"<<"(";
for(temp=0;temp<=lc.rightlength();temp++)
cout<<lc.array[temp]<<" ";
cout<<")";
}