数据结构 实验2 多项式求和

数据结构 实验2 多项式求和

ID:44715533

大小:151.01 KB

页数:7页

时间:2019-10-25

数据结构 实验2 多项式求和_第1页
数据结构 实验2 多项式求和_第2页
数据结构 实验2 多项式求和_第3页
数据结构 实验2 多项式求和_第4页
数据结构 实验2 多项式求和_第5页
资源描述:

《数据结构 实验2 多项式求和》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《算法设计与分析》实验报告-7-1、实验目的(1)掌握线性表的顺序存储结构和链式存储结构;(2)掌握线性表插入、删除等基本运算;(3)掌握线性表的典型运用——多项式求和。2、实验内容编程实现多项式的求和运算:(1)顺序存储结构的实现例如,已知:f(x)=8x^6+5x^5-10x^4+32x^2-x+10,g(x)=7x^5+10x^4-20x^3-10x^2+x,求和结果:f(x)+g(x)=8x^6+12x^5-20x^3+22x^2+10。顺序表的定义类型如下:#defineMAXLEN100typedef

2、struct{intdata[MAXLEN];Intlast;}SeqList;(2)链式存储结构的实现例如,已知:f(x)=100x^100+5x^50-30x^10+10,g(x)=150x^90-5x^50+40x^20-20x^10+3x,求和结果:f(x)+g(x)=100x^100+150x^90+40x^20-10x^10+3x+10。3、实验要求(1)利用C(C++)语言完成程序设计。(2)上机调试通过实验程序。(3)输入数据,检验程序运行结果。(4)给出具体的算法分析,包括时间复杂度和空间复杂度

3、等。(5)撰写实验报告(把输入实验数据及运行结果用抓图的形式粘贴到实验报告上)。4、实验步骤与源程序⑴实验步骤我先从具体的问题中抽象出适当的数学模型,然后设计出相应的算法,对于用顺序存储结构实现多项式求和而言,需要设计3个main函数调用的子函数,分别实现创建多项式,多项式相加和显示多项式;对于用链式存储结构实现多项式求和,也同样需要3个这样的子函数,最后,编写程序,并调试程序,得出实验结果。⑵源代码顺序存储结构:#include#defineMAXLEN100typedefstruct{int

4、data[MAXLEN];intlast;}SeqList;《算法设计与分析》实验报告-7-voidadd_List(SeqListA,SeqListB,SeqList*C){inti;C->last=A.last>B.last?A.last:B.last;for(i=0;i<=C->last;i++)C->data[i]=A.data[i]+B.data[i];}voidshow_list(SeqListC){inti;for(i=C.last;i>=1;i--)if(C.data[i])printf("(%

5、dx^%d)+",C.data[i],i);printf("(%dx^%d)",C.data[0],0);}voidcreate_list(SeqList*D){intn,i;printf("tt请输入多项式X的最高次数:");scanf("%d",&n);for(intk=99;k>=0;k--)D->data[k]=0;printf("tt请输入多项式X的次数由大到小输入系数,缺少项用0补齐");for(i=n;i>=0;i--){printf("tt输入X^%d项的系数:",i);

6、scanf("%d",&D->data[i]);}D->last=n;}voidmain()《算法设计与分析》实验报告-7-{SeqListA,B,C;printf("tt创建多项式f(x):");create_list(&A);printf("ttf(x)=");show_list(A);printf("tt创建多项式g(x):");create_list(&B);printf("ttg(x)=");show_list(B);printf("tt多项式f(x)和g(x)的和:");a

7、dd_List(A,B,&C);printf("ttf(x)+g(x)=");show_list(C);}链式存储结构:#include#include#includetypedefstructlinknode{floatcoef;intexpn;structlinknode*next;}Node;voidcreate_link_list(Node*L){Node*p,*q;intn=1;floatx=1;q=L;printf("请按多项式指数由大

8、到小输入系数和指数:");《算法设计与分析》实验报告-7-printf("提示:系数和指数间用空格间隔,每组数据之间用回车间隔(系数和指数为0时结束输入)");while(fabs(x)>0.000001){scanf("%f%d",&x,&n);if(fabs(x)>0.00001){p=(Node*)malloc(sizeof(Node));p->coef=x

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。