1、多项式合并
代码:
#include
#include
#include
using namespace std;
class Term{
public:
int coef; //系数
int exp; //指数
Term(){};
Term(int c,int e){
coef = c;
exp = e;
}
};
void show(list slist)//显示链表
{
list::iterator iter = slist.begin
2、);
cout<<(*iter).coef<<"x^"<<(*iter).exp;
iter++;
while(iter!= slist.end()){
cout<<"+"<<(*iter).coef<<"x^"<<(*iter).exp;
iter++;
}
cout< alist,list blist)//合并链表
{
list::iterator iter1 = alist.begin();
list::iter
3、ator iter2 = blist.begin();
list mergeList;
list::iterator iterMerge = mergeList.begin();
while(iter1!=alist.end() && iter2!=blist.end()){
if((*iter1).exp == (*iter2).exp){
Term temp = Term((*iter1).coef +(*iter2).coef,(*iter1).exp);
mergeList.push_back(temp);
iter1+
4、
iter2++;
}
else if((*iter1).exp > (*iter2).exp){
mergeList.push_back(*iter1);
iter1++;
}
else{
mergeList.push_back(*iter2);
iter2++;
}
}
if(iter1==alist.end()){
while(iter2!=blist.end()){
mergeList.push_back(*iter2);
iter2++;
}
}
else if(it
5、er2==blist.end()){
while(iter1!=alist.end()){
mergeList.push_back(*iter1);
iter1++;
}
}
cout<<"H(x)=F(x)+G(x)=";
show(mergeList);
}
void main(void)
{
list f;
list g;
int arry1[]={8,7,3,5,9,2,5,1,2};
int arry2[]={7,4,2,0,6,5,4,1,0};
for(int i=0;i<4;i++)
{
Term t;
t=Term(arry1[i],arry2[i]);
f.push_back(t);
}
for(int j=4;j<9;j++)
{
Term t;
t=Term(arry1[j],arry2[j]);
g.push_back(t);
}
cout<<"F(x)=";
show(f);
cout<<"G(x)=";
show(g);
merge(f,g);
}
截图: