资源描述:
《实验一线性表应用---多项式计算》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程名称数据结构与算法实验项目名称实验一线性表应用…多项式计算学生姓名专业班级学号实验成绩指导老师(签名)日期一.实验目的和要求1.进一步掌握线性表的的基本操作。2.掌握线性表的典型应用一一多项式表示与计算。二.实验内容1.设用线性表((al,el),(a2,e2),,(am,em))表示多项式P(x)=al*xel+a2*xe2+•••+am*xem,请编写用链式存储结构(带表头附加结点的单链表)存储该多项式时,多项式基本操作的实现函数。要求:把多项式线性表的结构定义及多项式基本操作实现函数存放在文件Linkpoly.h中
2、。说明:基木操作可包括如下①初始化多项式InitPoly(p)②输出多项式TraversePoly(p)③清除多项式ClearPoly(p)④插入一项lnsertPoly(p,a,e)⑤删除一项DeletetPoly(p,a,e5pos)⑥多项式求值PolySum(pJx)⑦多项式相加PolyAdd(p1,p2)2.建立主程序文件testl.cpp,在主函数main()中通过调用Linkpoly.h中的函数进行测试。3.选做:编写用顺序存储结构存储多项式时,上述各多项式基木操作的实现函数。要求:把多项式线性表的结构定义及多项
3、式基本操作实现函数存放在文件Seqpoly.h中,在主程序文件testl.cpp屮增加测试语句对Seqpoly.h中的函数进行测试。4.填写实验报告,实验报告文件取名为reportl.doco5.上传实验报告文件reportl.doc与源程岸文件testl.cpp及Linkpoly.h、Seqpoly.h(若有)到Ftp服务器上自己的文件夹下。三.函数的功能说明及算法思路包括每个函数的功能说明,及一些重要函数的算法实现思路InitPoly(p)初始化链表TraversePoly(p)遍历链表ClearPoly(p)清除链表l
4、nsertPoly(p,a,e)将多项式的一项插入链表DeletetPoly(p,a,e,pos)删除链表中第pos项PolySum(p,x)多项去求值lnitPoly2(L)初始化顺序线性表TraversePoly2(L)遍历顺序线性表ClearPoly2(L)清除顺序线性表lnsertPoly2(L,a,e)在顺序线性表中插入一项DeletetPoly2(L,a,e,pos)删除第pos项PolySum2(L,x)求值一.实验结果与分析包括运行结果截图等>Inputanxforgetthesum:2TheSunofThe
5、Polyis:2116Pressanykeytocontinue■“E:Docum已ntsStudyS^结构与算法嗟碍结构实验回I全延P=1x^2+5x^6+7x^8Inputanxforgetthesum:2TheSumofThePolyis:2116Inputa&e..endwith0&01234567800P=1x^2+3x^4+5x^6+7x^8Inputapostodelete:2testSeqpoly.hnowInputa&e..endwith0&01234567800.2〉"3.4〉"5.6〉
6、.<7,8〉.>Inputapostodelete:2二.心得体会由于对线性表操作函数的遗忘,大大的增加了难度,及链式、顺序的混淆也给做题中带来不少麻烦。【附录•…源程序】TestleCpp#include#include#include#include#include"Linkpoly.h"#include"Seqpoly.h"voidmain(){LNode*p;InitPoly(p);doublea;inte;cout«"Inputa&e,e
7、ndwith0&0"«endl;cin»a»e;while(e!=0
8、
9、a!=0){InsertPoly(p,a,e);cin»a»e;}TraversePoly(p);cout«nInputapostodelete:n«endl;intpos;cin»pos;DeletetPoly(p,a,e,pos);TraversePoly(p);doublex;cout«nInputanxforgetthesum:";cin»x;cout«"TheSumofThePolyis:"«PolySum(p,x)«endl;ClearPol
10、y(p);cout«"H«endl;cout«ntestSeqpoly.hnown«endl;SeqListL;InitPoly2(L);cout«"Inputa&e,endwith0&On«endl;cin»a»e;while(e!=0
11、
12、a!=0){InsertPoly2(L,a,e)