コード例 #1
0
poly poly::add(poly p)
{
    term *ptermarray=p.getArray();
    int n=p.getTerms()+term_num;
    poly newpoly(n,0);
    list polyMerge(term_num,p.getTerms(),0,0);
    polyMerge.merge(termarray,ptermarray,poly_func,newpoly);
    if(newpoly.getCapacity()>newpoly.getTerms())//clean the space
    {
        term *newArray=newpoly.getArray();
        term *temp=new term[newpoly.getTerms()];
        int ptr=newpoly.getTerms()-1;
        for(;ptr>=0;ptr--)
        {
            temp[ptr]=newArray[ptr];
        }
        newpoly.setArray(temp,newpoly.getTerms());
        delete []temp;
        delete []newArray;
        newArray=NULL;
    }
    return newpoly;
}