- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验---线性排列剖析
深 圳 大 学 实 验 报 告 课程名称: 数据结构 实验项目名称: 线性排列 学院: 信息工程学院 专业: 电子信息工程 指导教师: 报告人: 学号:20091000000 班级: 电子1班 实验时间: 2011 年9月 29日 实验报告提交时间: 2011-10-15 教务处制 一、实验目的与要求: 实验目的:通过运用链表知识,编程实现多项式之间的运算,从而加深对链表概念的理解,提高链表编程的应用技巧。 实验要求:1、运行多项式例程,输入参数进行操作,对运行结果进行分析,并做详细说明 2、阅读多项式例程中的函数Polyn_Print和Polyn_ADD的代码,对两个函数的功能、参数、具体每行代码进行分析说明 3、参考例程,编写新函数Polyn_SUB,实现两个多项式相减的功能,并对新增功能进行测试,对运行结果进行说明。 二、方法、步骤:(说明程序相关的算法原理或知识内容,程序设计的思路和方法,可以用流程图表述,程序主要数据结构的设计、主要函数之间的调用关系等) 1、这是一个线性排列的实验,这次的实验室利用线性链表的基本操作来实验多项式的相加的。 2、对于一元多项式的相加,它的算法原理基本如下:对于所有指数相同的项,对应系数相加,若和不为零,则构成“和多项式”中的一项;对于指数不相同的项,则分别安指数的顺序复抄到“和多项式”中去。同样,多项式的减法也是基于同样的原理,可以这样理解,减去另一个指数可等于加上这个指数的相反数。 3、基于以上的算法原理,则可以运用线性链表的特性实现这一功能。如指针qa和qb分别指向多项式A,B中当前比较结点,分为3种情况,即: (1)qa所指结点指数值 qb所指结点指数值,应摘取qa所指结点插入“和多项式”链表中。这里用到链表的插入等函数。 (2)qa所指结点指数值 qb所指结点指数值,应摘取qb所指结点插入“和多项式”链表中。这里用到链表的插入等函数。 (3)qa所指结点指数值 = qb所指结点指数值,将两个结点中系数相加若不为零,则修改qa所指结点系数,同时释放qb结点,反之,从多项式A中删除相应结点,并释放qa,qb所指结点。这里用到链表的删除等函数。 4、多项式的减法的算法可基于加法的算法,即加上另个数的相反数。 三.实验过程及内容:(对程序代码进行说明和分析,越详细越好,代码排版要整齐,可读性要高) 1、验证多项式相加程序代码,其中对多项式例程中的函数Polyn_Print和Polyn_ADD的代码,对两个函数的功能、参数、具体每行代码进行分析说明。 (1)函数Polyn_ADD (2)函数Polyn_Print 2、编写新函数Polyn_SUB,实现两个多项式相减的功能,并对新增功能进行测试,对运行结果进行说明。 修改之后的代码段: void Polyn_SUB(PLink Pa, PLink Pb) { // 多项式加法:Pa = Pa-Pb,最终结果修改Pa得到,Pb不做修改 PLink ha, qa, qb; //定义指针 ha, qa, qb int itemp; //作为中间系数的变量 ha = Pa; //ha指向Pa的头结点 qa = Pa-next; //qa,qb分别指向Pa,Pb中当前结点 qb = Pb-next; while (qa qb) { //qa和qb均非空 switch (cmp(qa-expn, qb-expn)) { case -1: //Pa的指数比Pb小 ha = qa; //ha是qa的前驱 qa = qa-next; //指向下一个结点 break; case 0: // 两者的指数值相等 itemp = qa-coef - qb-coef; //qa的系数减去qb的系数 if
文档评论(0)