考研期末数据结构+实验+线性表及其应用(多项式相加、相乘)等案例.doc

考研期末数据结构+实验+线性表及其应用(多项式相加、相乘)等案例.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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)

1112111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档