- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验项目列表
序号 实验项目名称 成绩 指导教师 1 线性表及其应用(多项式相加、相乘) 2 哈弗曼树及哈弗曼编码译码的实现 3 Dijkstra最短路径 或Prim最小生成树 4 (快速、堆、归并)排序算法的设计 5 构造平衡二叉排序树 6 7 8 9 10 11 12
福建农林大学计算机与信息学院实验报告
系: 计算机系 专业: 计算机科学与技术 年级: 2007
姓名: 谢飞乐 学号: 071152032 实验室号_ 田_513_ 计算机号 25
实验时间: 09.3.25下午10、11 节 指导教师签字: 宁正元 成绩:
实验一 线性表及其应用
实验目的和要求
1、掌握线性表的插入、删除、查找等基本操作设计与实现
2、学习利用线性表提供的接口去求解实际问题
3、熟悉线性表的的存储方法
实验内容和原理
1、实验内容:设计一个一元多项式的简单计算器,其基本功能有①输入并建立多项式;②输出多项式;③多项式相加。可利用单链表或单循环链表实现之。
2、实验原理:以线性表来描述一元多项式,存储结构采用单链表,每个结点存储的多项式中某一项的系数和指数,建立单链表时指数高的结点列于指数低的 结点之后,即线性表的元素按指数递增有序排列。
实验环境
Visual C++ 6.0 及PC机
算法描述及实验步骤
思想算法:
以线性表来描述一元多项式,存储结构采用单链表,每个结点存储的多项式中某一项的系数和指数,建立单链表时指数高的结点列于指数低的结点之后,即线性表的元素按指数递增有序排列。
例如构造两个多项式ha: 5X3+4X2+3X+2
hb: X2+X+1
多项式加法:定义指针p,q分别指向ha,hb
i.p-exp==q-exp ,r-coef=p-coef+q-coef,pa,pb下移;
ii.p-expq-exp ,r-coef=q-coef;r-exp=q-exp;,q下移
iii.pa-exppb-exp, r-exp=p-exp;r-coef=p-coef;,p下移
iv.p!=NULL,pb==NULL.相当于iii.
V.q==NULL,pb!=NULL.相当于ii.
其流程图如下:
多项式乘法:定义指针fp,gp分别指向f,g
1.将两多项式最大指数相加并赋于maxp,并置g
2.用for循环求指数等于maxp时相乘的系数
3. (fp!=NULL)(gp!=NULL), p=fp-exp+gp-exp
1.pmaxp, fp=fp-next;
2. pmaxp, gp=gp-next;
3.p=maxp, x+=fp-coef*gp-coef; fp=fp-next;gp=gp-next;
调试过程
将主函数中的多项式相乘的函数hd=polymult(ha,hb);/*ha和hb相乘*/的polymult(ha,hb)改为polymulti(ha,hb)即可。
实验结果
1.分别输入两个多项式: 5X3+4X2+3X+2 和X2+X+1,然后输出结果如下:
2.分别输入两个多项式:6X4+4X2+2和5X+6,然后输出结果如下:
总结
此次上机实验应用了线性表实现了一次实际操作,完成了一个一元多项式的简单计算器,不仅对此次编译程序的算法思想有了新的认识,还让我深刻的体会到了线性表的重要性以及其应用的方便,并且对指针加深了映象,应用了书本中的算法思想,对我以后的编译以及完成新的程序有很大的帮助。
附录:
1.建立多项式列表代码如下:
mulpoly *creatpoly()/*建立多项式列表*/
{mulpoly *head,*r,*s;/*设中间变量*/
int m,n;
head=(mulpoly *)malloc(sizeof(mulpoly));/*头结点申请空间*/
printf(\ninput coef and exp:\n);
scanf(%d%d,n,m);/*输入多项式系数和指数*/
r=head;/*尾指针指向头指针*/
while(n!=0)/*将输入的多项式存放在S中*/
{s=(mulpoly*)malloc(sizeof(mulpoly));
s-coef=n;
s-exp=m;
r-next=s;
r=s;
/*printf(input coef and exp:\n);*/
sca
文档评论(0)