- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实 验 报 告
课程名称 计算机软件基础
实验项目 线性表的应用
实验仪器 计算机
系 别 光电信息与通信工程
专 业 电子信息工程
班级/学号
学生姓名
实验日期 2011-4-1
成 绩 _______________________
指导教师 _______________________
实验一 线性表的应用
实验目的:掌握线性链表的存储、运算及应用。利用链表实现一元多项式计算。
实验内容:
编写函数,实现用链表结构建立多项式;
编写函数,实现多项式的加法运算;
编写函数,实现多项式的显示;
测试:编写主函数,它定义并建立两个多项式,显示两个多项式,然后将它们相加并显示结果。变换测试用的多项式,检查程序的执行结果。
选做内容:修改程序,选择实现以下功能:
多项式求值:编写一个函数,根据给定的x值计算并返回多项式f(x)的值。测试该函数(从终端输入一个x的值,调用该函数并显示返回结果)。
多项式相减:编写一个函数,求两个多项式相减的多项式。
多项式相乘:编写一个函数,求两个多项式的乘积多项式。
3、实验步骤:
1)多项式的输出:
在函数PrintPoly(PNode *h)里,根据我们平时写多项式的习惯,对函数进行了修改,比如当系数为0时不输出、系数为1时省略1、指数为0时只输出系数、指数为1时指数1省略、实现降幂排列、同类项合并等等,使得多项式输出后跟我们平时书写的一样自然。
在修改函数的过程中遇到过很多的问题,考虑问题不周全,在一遍又一遍的运行后,才使得输出基本规范,但是降幂排列还是没能实现,后来上网查了些资料,再慢慢地修改了一点,最后才把问题解决,我试着运行了几遍,感觉结果还不错,以下是运行时的截图:
2)多项式的减法、求值和相乘:
多项式的减法跟加法差不多,只需把被减的多项式的系数变成其相反数,然后再相加就可以了;
多项式的求值也比较简单,取得X的值后,分别计算多项式的各项,存储在y中,然后把前几项的值相加,f=f+y;
多项式的相乘是把系数相乘,指数相加,再创建新的节点存储各相乘后的项,最后返回头指针就行了。
运行的最后结果如下图:
4、程序清单:
#include stdio.h
#include stdlib.h
#include math.h
typedef struct polynode
{ float coef; //系数
int exp; //指数
struct polynode *next; //下一结点指针
} PNode;
void PrintPoly(PNode *h) //输出多项式。修改此算法,使输出形式更符合自然表达规范
{
PNode *p=h-next,*q,*max,*t;
int a=0; //存储指数,用于降幂排列
float b=0; //存储系数
if(p==h) {
printf(Null Poly.\n); //判断是否为空
return;
}
for(p=h-next;p-next!=h;p=p-next) //实现降序排列
{
max=p; //令max=p为最高次幂
for(q=p-next;q!=h;q=q-next) //冒泡法排序
if(max-expq-exp)max=q; //如果max的指数比下一节点q指数小,则令max=q
if(max-exp!=p-exp||max-coef!=p-coef){ // 如果max变了,即max!=p,则交换p与max的成员值
a=max-exp;b=max-coef;
max
文档评论(0)