- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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;
您可能关注的文档
- 7.26玉屏站调车进异线事故案例分析.ppt
- 矩阵相乘 汇编课设.doc
- 运动控制系统课程设计-说明书.doc
- OMRON-PLC与西门子、三菱之比较.ppt
- DSP实验报告四:汇编语言程序设计-数据存取实验.doc
- 单片机实验指导_59728.doc
- 湘潭大学2009单片机原理与应用试卷B卷.doc
- 算法设计与分析:回溯法-实验报告.doc
- 第9章多元线性回归习题答案.doc
- 第十九章:IS-LM-BP模型.ppt
- 2010-2023历年辽宁省盘锦市中考第一次模拟考试数学试卷(带解析).docx
- 2010-2023历年辽宁省盘锦市二中高一下第二次阶段测试地理试卷(带解析).docx
- 2010-2023历年辽宁省盘锦市中考模拟(三)英语试卷(带解析).docx
- 2010-2023历年辽宁省盘锦市九年级中考模拟(三)英语试卷(带解析).docx
- 生产母羊购销合同协议.docx
- 疆模板脚手架合同协议.docx
- 甲醇供货协议合同协议.docx
- 2010-2023历年辽宁省盘锦市中考模拟(二)英语卷(带解析).docx
- 2024-2025年六年级(五四学制)上学期期末语文试题(含答案).docx
- 2010-2023历年辽宁省瓦房店高级中学高二下学期期中考试生物试卷(带解析).docx
文档评论(0)