数据结构与算法大作业——多项式加法报告书.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据结构与算法大作业——多项式加法报告书.pdf》由会员分享,可在线阅读,更多相关《数据结构与算法大作业——多项式加法报告书.pdf(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、多项式加法报告书1100400310 王肖伊一、作业题目:多项式加法二、作业目的:运用数据结构与算法课程中学到的知识,编写一个程序能实现以下功能,将两个一元高次多项式从外部无序输入,处理成降序排列,最后相加得到一降序多项式,再输出。三、作业要求:将两个一元高次多项式 A、B从外部无序输入,处理成降序排列,最后相加得到一降序多项式,再输出。四、算法思想:分别建立功能不同的子函数,最后将它们都写到主函数中实现。首先定义线性表的结点和结点的数据型,之后初始化多项式。编写一个能将元素插入线性表需要位置后面的函数。现在准备工作完成,开始编写多项式输入、运算、输出的子函数。首先要读入多项式项数,之后读入每
2、项的系数和指数建立多项式,按照这个方法完成两个多项式的输入。然后执行将这两个多项式相加的子函数,这其中会需要一个连接代表两个多项式的链表的子函数。最后编写一个输出结果的多项式函数,并按照结果的指数下降的顺序排列好。五、数据结构:线性表是一种常用的数据结构,其在顺序存储结构和链式存储结构中插入的方法。线性表的实现包括两个部分,选择适当的数据结构描述线性表“型”LIST和应用相应的函数实现线性表上的各个基本操作。本次实验,使用了线性表的指针实现,即利用指针把表中的各个元素依次链接起来,形成一个单向链表。这种方法的优点是不需要用连续的存储单元来存放各元素。因此,当向表中插入一个元素师,不需要移动表中
3、其他的元素来为新元素留出空位,但代价是每个结点中需要额外的一个域来存放表示元素相继性的指针。在这种表示方法中,一个线性表有若干结点组成,每个节点有两个域,即信息域和指针域。信息域用来存放表中的一个元素,指针域用来存放指向一个结点的指针。为了方便处理空表,还规定一个表头结点,其信息域不含表中的任何元素,而指针域为指向表中的第一个结点的指针。对于选择线性表的数组实现还是指针实现这个问题,我通过实验得出了一些结论。数组实现需要在编译阶段就确定线性表的最大长度,若无法确定增长的极限,则应选取指针的实现方式。由于,多项式项数是没有限制的,所欲本实验选择了指针实现的方式。在线性表的指针实现方式中,由于插入
4、或删除操作会改变某元素位置的变量的值,当以后再引用该变量时,就可能发生错误。1六、程序:#include#include typedef struct term/结点数据的定义,包含每项的系数 coef 和指数 expn float coef;/系数 int expn;/指数term;typedef struct LNode/结点的定义 term data;struct LNode*expnxt;LNode,*Linklist;typedef Linklist polynomial;void Poly_Initialize(polynomial*p)/初始化多项式 *p=(Linklist)m
5、alloc(sizeof(LNode);(*p)-expnxt=NULL;/先建立头结点 (*p)-data.coef=0.0;/头结点数据域存储此链表的大小 (*p)-data.expn=-1;int Location_Find(polynomial*p,term item)/找到要插入的位置 int location=0;Linklist t=*p;t=t-expnxt;while(t!=NULL)&(t-data.expn=item.expn)if(t-data.expn=item.expn)printf(这个阶次已经存在!n);location+;t=t-expnxt;return l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 作业 多项式 加法 报告书
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内