题目描述
一条单链表可以表示一个一元多项式,每个节点包含三个域:指数、系数和后继节点(指针或引用)。
表示多项式3X4-6X2+5X-10的单链表如图所示。给定两个多项式,实现两个多项式相加算法。
输入
第一行输入包含两个整数m,n
后续为m行和n行数据
m,n分别代表两个多项式的项数
后续每一行代表多项式的项,包含a,b两个数据,表示该项的系数和指数。
输出
从较高指数到较低指数,依次输出求得的和。
每行一项,格式与输入相同,但无需输出项数,系数为0的项也不输出。
样例输入
2 3 1 2 1 1 2 2 1 1 2 0
样例输出
3 2 2 1 2 0
提示
来源
数据结构Java版
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int m,n;
int a[101];
memset(a,0,sizeof(a));
cin>>m>>n;
int c,d;
for(int i=1;i<=m;i++)
{
cin>>c>>d;
a[d]+=c;
}
for(int i=1;i<=n;i++)
{
cin>>c>>d;
a[d]+=c;
}
for(int i=100;i>=0;i--)
{
if(a[i]!=0)
cout<<a[i]<<' '<<i<<endl;
}
}