1305120617魏伟计工02班实验2例析.doc

计算机科学与工程学院 《算法与数据结构》实验报告(二) 专业班级 2013级计算机工程专业02班 实验地点 403机房 学生学号 1305120617 指导教师 蔡琼 学生姓名 魏伟 实验时间 2015-04-11 实验项目 链表的应用 实验类别 基础性(√) 设计性() 综合性() 其它( ) 实验目的及要求 (1)熟练掌握链表结构及有关算法的设计; ()掌握用链表表示特定形式的数据的方法,并能编写出有关运算的算法 日 期: 2015 年 4 月 18 日 实 验 内 容 一、实验内容:一元多项式求和。 把任意给定的两个一元多项式P(x)?,Q(x)?输入计算机,计算它们的和并输出计算结果。实验说明: 一元多项式可以用单链表表示,结点结构图示如下: 一元多项式算法伪代码如下: 实 验 内 容 三、预期结果 a=3x^4+2x^3-5x^2+x b=7x^4-5x^3+3x^2+x 输出为c=10x^4-3x^3-2x^2+2x 四程序代码 #includestdio.h #includestdlib.h typedef struct LNode { int x,z; struct LNode *next; }LinkList; void OutXLinkList(LinkList *L); void OutZLinkList(LinkList *L); void main() { int n,m; LinkList *a,*b,*c; printf(请输入一元多项式a的项数m:); scanf(%d,m); printf(请按照从低次到高次的顺序依此输入一元多项式a的系数和指数:\n); PutLinkList(a,m); printf(a=); OutLinkList(a); printf(请输入一元多项式b的项数n:); scanf(%d,n); printf(请按照从低次到高次的顺序依此输入一元多项式b的系数和指数:\n); PutLinkList(b,n); printf(b=); OutLinkList(b); c=AddLinkList(a,b); printf(两个多项式的和为:\na+b=); OutLinkList(c); } void PutLinkList(LinkList *L,int n) { LinkList *s,*r; L=(LinkList *)malloc(sizeof(LinkList)); r=L; for(int i=0;in;i++) { s=(LinkList *)malloc(sizeof(LinkList)); printf(请输入第%d项的系数:,i+1); scanf(%d,s-x); printf(请输入第%d项的指数:,i+1); scanf(%d,s-z); r-next=s; r=s; } r-next=NULL; } /*多项式输出函数*/ void OutLinkList(LinkList *L) { char FuHao; LinkList *p=L-next; FuHao=p-x0? +:-; if(FuHao==-) { printf(%c,FuHao); if(p-x==-1) printf(1); } OutXLinkList(p); OutZLinkList(p); p=p-next; while(p!=NULL) { FuHao=p-x0? +:-; printf(%c,FuHao); OutXLinkList(p); OutZLinkList(p); p=p-next; } printf(\n); } /*输出系数函数*/ void OutXLinkList(LinkList *L) { int xi=L-x0? L-x:-L-x; if(L-x==1||L-x==-1); else printf(%d,xi); } /*输出指数函数*/ void OutZLinkList(LinkList *L) { if(L-z==0) ; else if(L-z==1||L-z==-1) { if(L-z0) { if(L-x==1||L-x==-1) printf(1); prin

文档评论(0)

1亿VIP精品文档

相关文档