/* 很久以前写的,如果有错误请告诉我!*/
/* 案例2.2:使用单链表进行两个稀疏(一般)多项式的相加运算
A(x)=7+3x+9x8+5x17
B(x)=8x+22x7-9x8
[分析]每个链表存储多项式中的一个非零项,包括系数coef、指数expn
两个数据域以及一个指针域,指数相同则对应系数相加,不为零插入LC
为零释放两结点;指数不相同则将指数较小者插入LC */
#include<stdio.h>
#include<iostream.h>
#include<malloc.h>
#include<cstdlib>
#include<math.h>
#include<string.h>
#define OK 1
#define ERROR 0
#define X 3
typedef int Status;
typedef struct PNode
{
float coef;//系数
int expn;//指数
struct PNode *next;//指针域
}PNode,*Polynomial;//多项式
Status CreatePolyn(Polynomial &P,int n)
{
P=(PNode *)malloc(sizeof(PNode));
//创建一个带头结点的单链表
if(!P) exit(OVERFLOW);
P->next=NULL;
PNode