云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据结构课程设计报告一元多项式加减乘除

数据结构课程设计报告一元多项式加减乘除

  • 62 次阅读
  • 3 次下载
  • 2025/6/14 16:35:46

一元多项式的加法、减法、乘法 6.3.2顺序存储的多项式相减 程序源代码:

void SUB(Ploy A,Ploy B,Ploy *M) /*多项式A与多项式B相减(A-B),得到多项式M*/ {

int la=A.len,lb=B.len,i; M->len=la>lb?la:lb;

for(i=0;i<=la&&i<=lb;i++) {

M->a[i]=A.a[i]-B.a[i]; }

while(i<=la) {M->a[i]=A.a[i];i++;}

while(i<=lb) {M->a[i]=0-B.a[i];i++;} return ; }

-14-

一元多项式的加法、减法、乘法 6.4 一元多项式相乘

6.4.1链式存储的多项式相乘 程序源代码:

polynomail mulpolyn(polynomail pa,polynomail pb)

{

//完成多项式相乘运算,即:Pa=Pa*Pb polynomail s,newp,q,p,r; int i=20,j;

newp=(LNode*)malloc(sizeof(LNode)); r=newp;

for(p=pa->next;p!=NULL;p=p->next) for(q=pb->next;q!=NULL;q=q->next) {

s=(LNode*)malloc(sizeof(LNode));

s->data.coef=p->data.coef*q->data.coef; s->data.expn=p->data.expn+q->data.expn; r->next=s; r=s; }

r->next=NULL;

printf(\升序 1 , 降序 2\\n\ printf(\选择:\ scanf(\ if(j==1)

arrange1(newp); else

arrange2(newp); for(;i!=0;i--) {

for(q=newp->next;q->next!=NULL;q=q->next)//合并同类项 for(p=q;p!=NULL&&p->next!=NULL;p=p->next) if(q->data.expn==p->next->data.expn) {

q->data.coef=q->data.coef+p->next->data.coef; r=p->next;

p->next=p->next->next; free(r); } }

return newp;}

-15-

一元多项式的加法、减法、乘法 6.4.2顺序存储多项式相乘

程序源代码:

void MUL(Ploy A,Ploy B,Ploy *M)

/*多项式A与多项式B相乘,得到多项式M*/ {

int i,j;

for(i=0;i<=A.len+B.len+1;i++) M->a[i]=0; for(i=0;i<=A.len;i++) for(j=0;j<=B.len;j++) {

M->a[i+j]+=A.a[i]*B.a[j]; }

M->len=A.len+B.len; return ; }

-16-

一元多项式的加法、减法、乘法 6.5一元多项式输出结果按项的指数排序

6.5.1链式由小到大排序

图6.6.1链式升序流程图

void arrange1(polynomail pa)

{ polynomail h=pa,p,q,r; if(pa==NULL) exit(-2);

for(p=pa;p->next!=NULL;p=p->next); r=p; for(h=pa;h->next!=r;)//大的沉底

{ for(p=h;p->next!=r&&p!=r;p=p->next)

if(cmp(p->next->data,p->next->next->data)==1) { q=p->next->next;

p->next->next=q->next; q->next=p->next; p->next=q; }

r=p;//r指向参与比较的最后一个,不断向前移动 } }

-17-

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

一元多项式的加法、减法、乘法 6.3.2顺序存储的多项式相减 程序源代码: void SUB(Ploy A,Ploy B,Ploy *M) /*多项式A与多项式B相减(A-B),得到多项式M*/ { int la=A.len,lb=B.len,i; M->len=la>lb?la:lb; for(i=0;i<=la&&i<=lb;i++) { M->a[i]=A.a[i]-B.a[i]; } while(ia[i]=A.a[i];i++;} while(ia[i]=0-B.a[i];i++;} return ;

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com