欢迎来到天天文库
浏览记录
ID:8839207
大小:207.50 KB
页数:21页
时间:2018-04-09
《数据库相关有用信息》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、青岛理工大学课程实验报告课程名称数据结构班级软件112实验日期2013年4月15号姓名何金荣学号201107225实验成绩实验名称线性表的应用------一元多项式的计算实验目的及要求(1)通过一元稀疏多项式的表示和计算,熟练掌握线性表的基本操作,以及用线性链表表示线性表的存储结构操作的实现。(2)使学生掌握链表的最基本和最主要的操作:插入和删除操作。(3)熟悉C++的基本编程方法,掌握集成编译环境的调试方法。(4)学习指针,异常处理的使用。(5)学习使用线性表解决实际问题的能力。实验环境硬件平台:普通个人PC机软件平台:Windows7旗舰版操作系统编程环境:VisualC
2、++6.0编程软件实验内容利用线性表实现一个一元多项式PolynonmialF(X)=a0+a1*x+a2*x+a3*x+……….+an*xn实现一元稀疏多项式的如下运算:(1)由函数CreatPolyn()建立一元多项式有序表(2)由AddPolyn()函数,执行两个一元稀疏多项式相加运算(3)由SubtractPolyn()函数,执行两个一元稀疏多项式相减运算(4)由MultiplyPolyn()函数,执行两个一元稀疏多项式相乘运算(5)通过PrintPolyn()函数,打印输出一元多项式算法描述实验步骤:(1)首先定义一个数据结构体,建立单链表(2)输入m项的系数和指数
3、,建立表示一元多项式的有序链表P(3)输入第一个一元多项式p(4)输入第二个一元多项式q(5)打印输出两个多项式的和P(6)输入第三个一元多项式h21及实验步骤(1)打印输出两个多项式的差P(2)输入第四个一元多项式j(3)打印输出两个多项式的乘积p(4)销毁链表,将链表置为空表算法思想:测试主函数流程:开始设置第三个多项式的项数p和每项系数及指数输出第三个多项式q由AddPolyn()函数进行两多项式相加得P输出相加的多项式结果p结束图2---两多项式相加21开始设置第三个多项式的项数p和每项系数及指数输出第三个多项式q由SubtractPolyn函数进行两多项式相减得P输
4、出相减的多项式结果p结束图2---两多项式相减开始输出第四个多项式的项数及每项的系数和指数输出第四个一元多项式K由MultiplyPolyn函数进行两多项式的乘积算法得P输出计算后的多项式结果P结束图3----两多项式相乘21算法描述:/************************************************************//*定义数据结构*//************************************************************/typedefstruct/*项的表示,多项式的项作为LinkList的数据元
5、素*/{floatcoef;/*系数*/intexpn;/*指数*/}term,ElemType;/*两个类型名:term用于本ADT,ElemType为LinkList的数据对象名*//************************************************************//*建立一元多项式有序表*//************************************************************/voidCreatPolyn(polynomial*P,intm)/*建立链表*/{/*输入m项的系数和指数,建立表示一
6、元多项式的有序链表P*/Positionq,s;terme;inti;InitList(P);printf("请依次输入%d个系数,指数:",m);for(i=1;i<=m;++i){/*依次输入m个非零项(可按任意顺序)*/scanf("%f,%d",&e.coef,&e.expn);if(!LocateElemP(*P,e,&q,cmp))/*当前链表中不存在该指数项,cmp是实参*/{MakeNode(&s,e);/*生成结点并插入链表*/InsFirst(P,q,s);}}}/********************************************
7、****************//*打印输出多项式*//************************************************************/voidPrintPolyn(polynomialP){/*打印输出一元多项式P*/Linkq;21q=P.head->next;/*q指向第1个结点*/printf("系数指数");while(q){printf("%f%d",q->data.coef,q->data.expn);q=q->next;}}/*****
此文档下载收益归作者所有