这个程序是求两个集合的并集:
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<<")";
}