一元多项式的加法与乘法
2018-03-14 20:30
323 查看
我只写了加法......乘法以后有空补上(可能补不上了>_<)
#include <stdio.h> #include <stdlib.h> typedef struct Node* Polynode; struct Node { int c; int e; Polynode Link; }; Polynode Read(); void Attach(int c,int e,Polynode *rear); void Print(Polynode p); Polynode Add(Polynode p1,Polynode p2); //Polynode Mult(Polynode p1,Polynode p2); int main() { Polynode p1,p2,p3; p1=Read(); p2=Read(); p3=Add(p1,p2); //p4=Mult(p1,p2); Print(p3); //Print(p4); return 0; } Polynode Read() { int n,c,e; scanf("%d",&n); Polynode P=(Polynode)malloc(sizeof(struct Node)); Polynode rear=P; while(n--){ scanf("%d %d",&c,&e); Attach(c,e,&rear); } rear->Link=NULL; Polynode t=P; P=P->Link; free(t); return P; } void Attach(int c,int e,Polynode *rear) { Polynode p=(Polynode)malloc(sizeof(struct Node)); p->c=c; p->e=e; (*rear)->Link=p; *rear=p; } Polynode Add(Polynode p1,Polynode p2) { Polynode p3=p1; Polynode p4=p2; Polynode L=(Polynode)malloc(sizeof(struct Node)); L->Link=NULL; Polynode rear=L; while(p3&&p4){ if(p3->e>p4->e){ rear->Link=p3; rear=p3; p3=p3->Link; } else if(p3->e==p4->e){ if(p3->c+p4->c){ p3->c+=p4->c; rear->Link=p3; rear=p3; } p3=p3->Link; p4=p4->Link; } else{ rear->Link=p4; rear=p4; p4=p4->Link; } } if(p3) rear->Link=p3; if(p4) rear->Link=p4; Polynode t=L; L=L->Link; free(t); return L; } void Print(Polynode p) { Polynode p1=p; while(p1){ printf("%d %d ",p1->c,p1->e); p1=p1->Link; } printf("\n"); }
相关文章推荐
- PTA 线性结构2 一元多项式的乘法与加法运算
- 一元多项式的乘法与加法运算
- C++ 02-线性结构2 一元多项式的乘法与加法运算
- 一元多项式的加法与乘法运算
- 实验项目 3-4:一元多项式的乘法与加法运算
- 02-线性结构2 一元多项式的乘法与加法运算
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- PTA 一元多项式的乘法与加法运算
- 02-线性结构2 一元多项式的乘法与加法运算
- 02-线性结构2 一元多项式的乘法与加法运算(20 分)(CPP)
- 5-2 一元多项式的乘法与加法运算
- 02-线性结构1 一元多项式的乘法与加法运算 -数据结构
- 7-2 一元多项式的乘法与加法运算
- PAT数据结构_02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 5-2 一元多项式的乘法与加法运算 (20分)
- 一元多项式的乘法与加法运算
- [PTA刷题]一元多项式的乘法与加法运算
- 一元多项式的乘法与加法运算
- 一元多项式的乘法与加法运算 PTA02-线性结构1