结合书上实验指导书上的例子,采用链式存储结构,将两个线性链表表示的一元多项式相加,并输出。此一元多项式遵循多项式相加运算规则:对于两个一元多项式中存在指数相同的项时,其对应系数相加。合并后系数和为零时,删除“和多项式”中此项;合并后系数和不为零时,则构成“和多项式”中的一项。对于两个一元多项式中存在的指数不相同的项,则分别复抄到“和多项式”中去,原多项式保持不变。
一元多项式相加源代码
#include<iostream>
using namespace std;
struct ListNode{
double coef;//系数域
int expn;//指数域
ListNode* next;//指针域,指向下一个结点
};
void ShowNode(ListNode* p){
double a = p->coef;//指向系数
int b = p->expn;//指向指数
if (a == 1){
//系数为1时
if (b == 0)//输出常数
cout << a;
else if (b == 1)
cout << "x";
else
cout << "x^" << b;
}
else if (a == -1){
//系数为-1
if (b == 0)
cout << -1;
else if (b == 1)
cout << "-x";
else
cout << "-x^" << b;
}
else{
//系数为其他
if (b == 0)
cout << a;
else if (b == 1)
cout << a << "x";
else
cout << a << "x^" << b;
}
}
//多项式连接
void Show<