题目: 设计函数分别求两个一元多项式的乘积与和。
输入格式:
输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:
输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。
输入样例:
4 3 4 -5 2 6 1 -2 0
3 5 20 -7 4 3 1
输出样例:
15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1
5 20 -4 4 -5 2 9 1 -2 0
考点:
单链表建立和处理
代码如下:
#include<bits/stdc++.h>
using namespace std;
typedef struct LNode{
int x, y, n;
struct LNode *next;
//struct LNode *prior;
} LNode, *LinkList;
LinkList L1, L2, newL1, newL2, q;
void CreateList_L(LinkList &L)
{
L = new LNode;
L->next = NULL;
//L->prior = NULL;
LinkList r = L, p;
int a, b, c;
scanf("%d", &c);
L->n = c;
while( c-- ) {
scanf("%d%d", &a, &b);
p = new LNode;
p->x = a;
p->y = b;
p->next = NULL;
//p->prior = r;
r->next = p;
r = p;
}
}
int lengthList_L(LinkList L)
{
int l = 0;
q = L->next;
while(q){
l++;
q = q->next;
}
return l;
}
int insertList_L(LinkList& newL, int s, int e) ///乘法运算时链表插入新节点
{
LinkList p = newL;
while(p->next){
if(p->next->y <= e) break;
p = p->next;
}
if