欢迎来到天天文库
浏览记录
ID:15741690
大小:384.50 KB
页数:34页
时间:2018-08-05
《数据结构实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、院系:计算机科学学院专业:网络工程年级:2010课程名称:数据结构学号:10066013姓名:张德龙指导教师:吴立锋2012年6月10日33年级 2010班号 1班组号 学号 10066013专业网络工程 姓名 张德龙实验名称 一元多项式的表示及相加实验室9205实验目的或要求 了解线性表的逻辑结构和各种存储表示方法,以及定义在逻辑结构上的各种基本运算及其在某种存储结构上如何实现这些基本运算。在熟悉上述内容的基础上,能够针对具体应用问题的要求和性质,选择合适的存储结构设计出相应的有效算法,解决与线性表相关的实际问题。实验原理(算法流程)实验要求及内容:1、实验题目用C/C
2、++语言等编写程序,完成一元多项式的表示及相加,要求:(1)用带表头结点的单链表来存储多项式;(2)输入并建立多项式;(3)输出多项式,如多项式3.1x11+11x9+2x+7输出形式为:3.1x^11+11x^9+2x+7;(4)能在原有链表的基础上实现两多项式的相加,并将相加的结果进行输出;(5)自定义结点结构,程序模块清晰,有运行结果。2、一元多项式相加算法思想(1)一元多项式相加的运算规则是:两个多项式中所有指数相同的项,对应系数相加,若和不为零,则构成“和多项式”;所有指数不同的项军复制到“和多项式”中。(2)具体情况如下:①如果pa->expexp,
3、表明pa所指节点应该为结果中的节点,则pa指针后移。②如果pa->exp=pb->exp,则合并同类项,即系数相加pa->coef=pa->coef+pb->coef:若相加结果pa->coef=0,结果中不再有系数为pa->exp的项,则删除pa和pb所指节点,且pa和pb后移;若相加后结果pa->coef≠0,表明pa所指节点为结果中的节点,则删除pb所指节点,且pa和pb指针均后移。③如果pa->exp>pb->exp,表明pb所指节点应该为结果中的节点,则将pb所指链入单链表A中,且pb指针后移。33实验原理(算法流程) 3、存储结构描述及说明采用链式储存结构,多
4、项式中的每一项为单链表的一个节点,每个节点包含三个域:系数域(coef)、指数域(exp)和指针域,定义如下:typedefstructPolyNode{floatcoef;intexp;PolyNode*next;}PolyNode,*PolyList;4、函数说明①创建多项式链表:PolyListPolyCreate(intm);②多项式链表相加:voidPolyAdd(PolyListla,PolyListlb);③输出多项式:voidPrint(PolyListL);④主函数。5、模块之间的调用关系 调用关系示意图如下:主函数输出多项式多项式相加创建多项式33组内
5、分工(可选)独立完成。实验结果分析及心得体会实验结果:样例输入:样例输出:实验心得:通过此次实验,掌握了链表的基本运用:创建链表、插入节点、删除节点等操作;其次,在设计算法时对算法进行对算法进行时间复杂度和空间复杂度的简单分析,以估计该算法的效率。成绩评定教师签名:年月日33源代码如下:#include#includeusingnamespacestd;typedefstructPolyNode{floatcoef;intexp;PolyNode*next;}PolyNode,*PolyList;PolyListPolyCreate(
6、intm);/*CreatethePolylist*/voidPolyAdd(PolyListla,PolyListlb);/*AddthePolyListLaandLb*/voidPrint(PolyListL);/*OutputandPrintPolyList*/intmain(){cout<<"
7、---------------------------------------
8、";cout<<"
9、----EditedBy:JangDelong<10066013>----
10、";cout<<"
11、-----------------------------------
12、----
13、";PolyListLa,Lb;intn;//--------CreatetheLa--------cout<<"请输入La的项数:";cin>>n;La=PolyCreate(n);cout<<"La输出为:";Print(La);cout<>n;Lb=PolyCreate(n);cout<<"Lb输出为:";Print(Lb);cout<
此文档下载收益归作者所有