- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Status ConverseLink(LinkList L){ if( L-next==NULL) return error; p=L-next; L-next=NULL; while(p!=NULL){ q=p; p=p-next; q-next=L-next; L-next=q; } return ok; } 1) 存储结构的选取 任一一元多项式可表示为Pn(x)=P0+P1x+P2x2+...+Pnxn,显然,由其n+1个系数可惟一确定该多项式。故一元多项式可用一个仅存储其系数的线性表来表示,多项式指数i隐含于Pi的序号中。 P=( P0,P1,P2,...,Pn) 若采用顺序存储结构来存储这个线性表,那么多项式相加的算法实现十分容易,同位序元素相加即可。 2.4:一元多项式的表示及相加 但当多项式的次数很高而且变化很大时,采用这种顺序存储结构极不合理。例如,多项式S(x)= 1+ 3x+12x999需用一长度为1000的线性表来表示,而表中仅有三个非零元素,这样将大量浪费内存空间。此时可考虑另一种表示方法,一般情况下的一元n次多项式可写成: 其中,pi是指数为ei的项的非零系数,且满足 线性表S(x)可表示成S=((1,0),(3,1), (12,999)), 若用一个长度为m且每个元素有两个数据项(系数项和指数项)的线性表便可惟一确定多项式Pn (x) 这种表示方法在计算机内对应两种存储方式:当只对多项式进行访问、求值等不改变多项式指数(即表的长度不变化)的操作时,宜采用顺序存储结构;当要对多项式进行加法、减法、乘法等改变多项式指数的操作时,宜采用链式存储结构。 2) 一元多项加法运算的实现 采用单链表结构来实现多项加法运算,无非是前述单向链表基本运算的综合应用。其数据结构描述如下, typedef stuct Pnode {float coef; int exp; struct pnode *next; }Pnode, *Ploytp; 图2.13给出了多项式A(x) = 15+ 6x+ 9x7+3x18 和B(x)= 4x+5x6+ 16x7的链式存储结构(设一元多项式均按升幂形式存储,首指针为-1)。 图2.13 一元多项式的存储 若上例A+B结果仍存于A中,根据一元多项式相加的运算规则,其实质是将B逐项按指数分情况合并于“和多项式”A中。设p, q分别指向A, B的第一个结点,如图2.14所示,其算法思路如下: (1) p-expq-exp, 应使指针后移p=p-next,如图2.14(a)所示。 (2) p-exp=q-exp, 将两个结点系数相加,若系数和不为零,则修改p-ceof,并借助s释放当前q结点, 而使q指向多项式B的下一个结点,如图2.14(b)所示;若系数和为零,则应借助s释放p, q结点, 而使p, q分别指向多项式A,B的下一个结点。 (3) p-exp q-exp,将q结点在p结点之前插入A中, 并使q指向多项式B的下一个结点,如图2.14(c)所示。 直到q=NULL为止或p=NULL,将B的剩余项链到A尾为止。最后释放B的头结点。 图2.14 多项式相加运算示例 q 下面给出从接收多项式到完成多项式相加运算的C程序。 void Crt-Polytp (h, n) Polytp h; int n; { Polytp q; int i; h=( Polytp)malloc(sizeof (Pnode) ); h-next=NULL; p=h; for(i=1;i=n;i++) {q=( Polytp)malloc(sizeof(Pnode)); scanf(%f,%d,q-ceof,q-exp); q-next=NULL; p-next=q; p=q;} } int Cmp(a,b) float a,b; { if(ab)return(-1); if(a=b)return(0); if(ab)return(1); } void Add Poly(pa, pb,pc) Polytp pa,pb,pc; { Polytp p,q,pre,s; p=pa-next; q=pb-next; pre=pa; pc=pa; while(p!=NULL q != NULL) {w=cmp(p-exp, q-exp);
您可能关注的文档
最近下载
- SHT 3539-2019《石油化工离心式压缩机组施工及验收规范》(报批稿).pdf
- 供应链管理岗晋升述职报告2025年深蓝色极简商务模板.pptx VIP
- DS solidworks培训资料大全-SolidWorks入门.pdf VIP
- 特灵HDWA磁悬浮离心式冷水机组 HDWA-PRC003-ZH 20200803.pdf VIP
- 部编版六年级道德与法治上册第5课《国家机构有哪些》优质课件.pptx
- 我和学生共同成长——班主任工作总结PPT.pptx
- 2025至2030年中国夹心板材行业市场运营现状及投资战略咨询报告.docx
- 北师大版数学八年级下册第六章平行四边形题型举一反三.docx VIP
- 老年患者出院准备服务指南 .pdf VIP
- 九九重阳节浓浓敬老情 课件.ppt VIP
文档评论(0)