#include<iostream>
using namespace std;
typedef struct PolyNode *Polynomial;
struct PolyNode
{
int coef;
int expon;
Polynomial link;
};
void Attach(int c, int e, Polynomial *pRear){
Polynomial P;//这里有点小问题,按理说应该动态申请一块空间,可是加上P=new PolyNode后编译错误...也没太弄懂
P->coef = c;
P->expon = e;
P->link = NULL;
(*pRear)->link = P;
(*pRear) = P;
}
Polynomial Polyread(){
int N,c,e;
Polynomial Rear, P,t;
cin >> N;
P = new PolyNode;
P->link = NULL;
Rear = P;
while (N--){
cin >> c >> e;
Attach(c, e, &Rear);
}
t = P; P = P->link; delete t;//删除临时生成的头结点
return P;
}
Polynomial Add(Polynomial P1, Polynomial P2){
Polynomial t1, t2, Rear, P;
t1 = P1; t2 = P2;
P = new PolyNode;
P->link = NULL;
Rear = P;
while (t1&&t2){
if (t1->expon > t2->expon){
Attach(t1->coef, t1->expon, &Rear);
t1 = t1->link;
}
if (t1->expon < t2->expon){
Attach(t1->coef, t2->expon, &Rear);
}
if (t1->expon == t2->expon){
if (t1->expon + t2->expon){
Attach(t1->coef + t2->
多项式乘法与加法运算(链表实现)
最新推荐文章于 2022-05-09 12:23:30 发布
这篇博客探讨了使用链表数据结构来实现多项式加法和乘法的算法。虽然作者是新手,正在学习中,但分享了在网上找到的一种正确实现方式。
摘要由CSDN通过智能技术生成