- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构》实验指导(一)
实验一 线性表及其应用
实验目的
(1)掌握线性表的插入、删除、查找等基本操作设计与实现
(2)学习利用线性表提供的接口去求解实际问题
(3)熟悉线性表的的存储方法
实验环境
(1)Windows 2000,或WindowsXP(简体中文)
(2)Turbo C 3.0及以上,或Turbo Pascal 5.5及以上,或Visual C++ 6.0,或C++ Builder 6.0,或Visual C# 2005及以上,或Delphi 6.0及以上
操作系统环境和编程环境(集成开发环境)任选以上所列之一。
实验内容
设计一个实现一元多项式简单运算的程序。要求完成:1)多项式的建立,2)多项式的输出,3)多项式的相加运算,4)多项式的乘积运算。
解题思路:
以线性表来描述一元多项式,存储结构采用单链表,每个结点存储多项式中某一项的系数和指数,建立单链表时指数低的结点列于指数高的结点之后,即线性表的元素按指数递减有序排列。在多项式求和运算时,将指数相同的项的系数相加,其和非0则存储该项。乘积运算时,运用循环将2个多项式的各项交叉相乘,存储每2项的积(系数的积,指数的和)于新建立的结点,之后将这些结点中指数相同的各项系数之和非0的项合并为1个结点,最后释放多余的临时结点。
实现步骤:
以C++ Builder环境为例,实现步骤如下:
1.新建一个Win32 Console Application程序项目。
2.在代码编辑窗口编写程序代码,含义如注释说明:
#include iostream.h
#include cmath.h
typedef
struct node // 定义单链表结点的数据类型mulpoly
{ double coef; // 表示系数
int exp; // 表示指数
struct node *next; // 指向下一项结点的指针
}mulpoly;
mulpoly *create() // 逐项输入系数和指数,建立单链表的函数
{ mulpoly *h, *p, *q;
h=new mulpoly; // 建立头结点
p=h; // 头结点作为初始的前驱
double x,y;
while(1) // 循环建立各项结点,直到输入指数是零为止
{ coutInput a coefficient: ; cinx; // 输入系数
coutInput an exponent: ; ciny; // 输入指数
if(x)
{ q=new mulpoly;
q-coef=x; q-exp=y; // 存系数和指数
p-next=q; // 前驱的next指向新建结点
p=q; // 下一个结点的前驱即当前结点
}
if(y1e-6) break;
}
p-next=NULL; // 最后一项结点无后继
return h; // 返回头指针
}
void output(mulpoly *h) // 遍历单链表,输出一元多项式的函数
{ mulpoly *p;
coutY=;
p=h-next;
if(p==NULL) cout0; // 多项式为0
else // 输出多项式的第1项
{ coutp-coef;
if(p-exp!=0) coutX;
if(p-exp1) cout^p-exp;
p=p-next;
}
while(p!=NULL) // 逐项输出后续各项
{ if(p-coef0) cout+;
coutp-coef;
if(p-exp!=0) coutX;
if(p-exp1) cout^p-exp;
p=p-next;
}
coutendl;
}
mulpoly *poly_add(mulpoly *a,mulpoly *b) // 两个多项式求和的函数
{ mulpoly *c, *pa, *pb, *pc, *q;
c=new mulpoly; // 建立结果多项式单链表的头结点
pc=c;
pa=a-next; pb=b-next;
while((pa!=NULL)(pb!=NULL))
{ if(pa-exppb-exp) // 被加项的指数较大
{ q=new mulpoly;
q-coef=pa-coef; q-exp=pa-exp; pa=pa-next;
您可能关注的文档
最近下载
- (正式版)SH∕T 3553-2024 石油化工汽轮机施工及验收规范.pdf VIP
- 电气专项施工方案.doc VIP
- 个人简历——【标准模板】.doc VIP
- 软件开发工具unsp ide使用说明书.pdf VIP
- 【课堂新坐标(教师用书)高中英语 Unit 3 Period V Culture Corner & Bulletin Board课件 北师大版必修1.ppt VIP
- 老年病多学科诊疗模式.pptx VIP
- GPX 生产手册.pdf VIP
- 老年病多学科诊疗模式.pptx VIP
- 【课堂新坐标(教师用书)高中英语 Unit 1 Lifestyles单元归纳提升课件 北师大版必修1.ppt VIP
- 新课标高中英语 教师用书配套资料 Unit1~2 阶段综合检测 北师大版必修1.doc VIP
文档评论(0)