7-2 一元多项式的乘法与加法运算
求一元多项式的和与积
PTA数据结构与算法题目集【中文】第二道编程题
**用单链表处理,这类做法代码量较多,我的注释尽量写的仔细
#include <iostream>
#include <vector>
using namespace std;
struct Node {
int coefficient;
int Index;
struct Node* next;
Node(int c, int i) : coefficient(c), Index(i), next(NULL) {
} //构造函数,让指针初始值为空
};
void print(Node* x) {
if (x == NULL) {
//由后面的函数结果,若返回NULL表示答案为0
cout << 0 << " " << 0 << endl;
return;
}
while (x->next) {
//当x现在指向的结点的下一个不是NULL,即x不是最后一个结点时
cout << x->coefficient << " " << x->Index << " ";
x = x->next;
}
cout << x->coefficient << " " << x->Index << endl; //最后无空格
}
Node* add(Node* a, Node* b) {
//返回完成加法的链表
if (a == NULL)return b; //当一个结点为空,返回另一个结点
if (b == NULL)return a;
Node* head = NULL, * tail = NULL;
while (a && b) {
if (a->coefficient == 0)