一元多项式加减乘运算一元多项式加减乘运算-数据结构数据结构-课程设计课程设计
Polyn.h
#include
#include
#include
typedef struct polyn {
double coef;
int expn;
struct polyn* next;
}PolyNode, *PLinkList;
PLinkList CreatePolyn(int n);//创建一元多项式,使一元多项式呈指数递减
void PrintPolyn(PLinkList head);//输出一元多项式
PLinkList Addition(PLinkList L1,PLinkList L2);//多项式的加法
PLinkList Subtraction(PLinkList L1,PLinkList L2);//多项式的减法
PLinkList Reverse(PLinkList head);//将生成的链表逆置,使一元多项式呈指数递增形式
PLinkList MultiplyPolyn(PLinkList L1,PLinkList L2);//多项式的乘法
void Destory(PLinkList L); //销毁
Polyn.cpp
#include "Polyn.h"
#include
#include
#include
#include
#include
using namespace std;
PLinkList CreatePolyn(int n) {//创建一元多项式,使一元多项式呈指数递减
PolyNode *p, *q, *s;
PolyNode *head = NULL;
int expn2;
double coef2;
head = (PLinkList)malloc(sizeof(PolyNode));//动态生成头结点
if(!head) { exit(-2); }
head->coef = 0.0;//初始化
head->expn = 0;
head->next = NULL;
cout << "依次输入多项式的系数和指数:" <> coef2;
cin >> expn2;
s = (PLinkList)malloc(sizeof(PolyNode));
if(!s) { exit(-2); }
s->expn = expn2;
s->coef = coef2;
q = head->next ; //
p = head;
while(q && expn2 expn) {
p = q;
q = q->next ;
}
if(q == NULL || expn2 > q->expn) {
p->next = s;
s->next = q;
} else {
q->coef += coef2;
}
}
return head;
}
void PrintPolyn(PLinkList head) {//输出一元多项式
PolyNode *p = head->next ;
while(p) {
cout <coef;
//printf("%1.1f",p->coef);
if(p->expn) {
cout << "*X^" <expn;
//printf("*x^%d",p->expn);
}
if(p->next && p->next->coef > 0){
cout <next ;
}