C++链表实现一元多项式相加代码如下:
(输入多项式按次数从高到低排列)
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
struct node{
int coe;
int order;
struct node *link;
};//定义节点类型,coe表示x前的系数,order表示x的次数
int coe,order;
int i;
int nodeNumA;//多项式A的项数
printf("请输入多项式A的项数:\n");
scanf("%d",&nodeNumA);
printf("请输入多项式A:\n");
struct node *headA=0,*pA=0,*qA=0;
scanf("%d %d",&coe,&order);
headA=new struct node;
headA->coe=coe;
headA->order=order;
headA->link=0;
qA=headA;
for(i=1;i<nodeNumA;i++){
scanf("%d %d",&coe,&order);
pA=new struct node;
pA->coe=coe;
pA->order=order;
pA->link=0;
qA->link=pA;
qA=qA->link;
}//扫入A
printf("\n您输入的多项式A为:\n");
printf("%dx^%d",headA->coe,headA->order);