《数据结构》实验指导(一).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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;

文档评论(0)

taotao0c + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档