网站大量收购独家精品文档,联系QQ:2885784924

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

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 实验2 多项式求和

实验目的 掌握线性表的顺序存储结构和链式存储结构; 掌握线性表插入、删除等基本运算; 掌握线性表的典型运用——多项式求和。 实验内容 编程实现多项式的求和运算: 顺序存储结构的实现 例如,已知: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。 顺序表的定义类型如下: #define MAXLEN 100 typedef struct { int data[MAXLEN]; Int last; }SeqList; 链式存储结构的实现 例如,已知: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。 实验要求 利用C(C++)语言完成程序设计。 上机调试通过实验程序。 输入数据,检验程序运行结果。 给出具体的算法分析,包括时间复杂度和空间复杂度等。 撰写实验报告(把输入实验数据及运行结果用抓图的形式粘贴到实验报告上)。 实验步骤与源程序 = 1 \* GB2 ⑴ 实验步骤 我先从具体的问题中抽象出适当的数学模型,然后设计出相应的算法,对于用顺序存储结构实现多项式求和而言,需要设计3个main函数调用的子函数,分别实现创建多项式,多项式相加和显示多项式;对于用链式存储结构实现多项式求和,也同样需要3个这样的子函数,最后,编写程序,并调试程序,得出实验结果。 = 2 \* GB2 ⑵ 源代码 顺序存储结构: #includestdio.h #define MAXLEN 100 typedef struct { int data[MAXLEN]; int last; } SeqList; void add_List(SeqList A, SeqList B, SeqList *C) { int i; C-last=A.lastB.last? A.last:B.last; for(i=0;i=C-last;i++) C-data[i]=A.data[i]+B.data[i]; } void show_list(SeqList C) { int i; for(i=C.last;i=1;i--) if(C.data[i]) printf(\(%dx^%d\)+,C.data[i],i); printf(\(%dx^%d\)\n,C.data[0],0); } void create_list(SeqList *D) { int n,i; printf(\t\t请输入多项式X的最高次数:); scanf(%d,n); for(int k=99;k=0;k--) D-data[k]=0; printf(\t\t请输入多项式X的次数由大到小输入系数,缺少项用0补齐\n); for(i=n;i=0;i--) { printf(\t\t输入X^%d项的系数: ,i); scanf(%d,D-data[i]); } D-last=n; } void main() { SeqList A,B,C; printf(\t\t创建多项式f(x):\n); create_list(A); printf(\t\tf(x)=); show_list(A); printf(\t\t创建多项式g(x):\n); create_list(B); printf(\t\tg(x)=); show_list(B); printf(\t\t多项式f(x)和g(x)的和: ); add_List (A,B,C); printf(\n\t\tf(x)+g(x)=); show_list(C); } 链式存储结构: #includestdio.h #includemalloc.h #includemath.h typedef struct linknode { float coef; int expn; struct linknode *next; } Node; void create_link_list(Node *L) { Node *p,*q;

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档