数据结构-实验一-一元多项式相加

数据结构-实验一-一元多项式相加

ID:24925387

大小:358.44 KB

页数:8页

时间:2018-11-17

数据结构-实验一-一元多项式相加_第1页
数据结构-实验一-一元多项式相加_第2页
数据结构-实验一-一元多项式相加_第3页
数据结构-实验一-一元多项式相加_第4页
数据结构-实验一-一元多项式相加_第5页
资源描述:

《数据结构-实验一-一元多项式相加》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数据结构实验报告实验一:一元多项式相加姓名:周成学号:13083511专业:软件工程任课教师:马慧珠2013年12月01日1.实验名称:一元多项式相加2.实验目的:如何使用C语言实现链表的说明、创建以及结点的插入和删除等操作。3.实验要求:对一元多项式能实现输入、输出,以及两个一元多项式相加及结果显示。4.实验内容:一元多项式的表示在计算机内用链表来实现,同时为了节省存储空间,只存储其中非零的项,链表中的每个节点存放多项式的系数非零项。它包含三个域,分别存放多项式的系数,指数,以及指向下一个项的指针。根据一元多项式相加的运算规则:对于两个一元多项

2、式中所有指数相同的项,对应系数相加,若其和不为零,则构成“和多项式”中的一项,对于两个一元多项式中所有指数不相同的项,则分别复抄到“和多项式”中去。核心算法PolyAdd是把分别由pa和pb所指的两个多项式相加,结果为pa所指的多项式。运算规则如下:相加时,首先设两个指针变量qa和qb分别从多项式的首项开始扫描,比较qa和qb所指结点指数域的值,可能出现下列三种情况之一:(1)qa->exp大于qb->exp,则qa继续向后扫描。(2)qa->exp等于qb->exp,则将其系数相加。若相加结果不为零,将结果放入qa->coef中,并删除qb所指

3、结点,否则同时删除qa和qb所指结点。然后qa、qb继续向后扫描。(3)qa->exp小于qb->exp,则将qb所指结点插入qa所指结点之前,然后qa、qb继续向后扫描。扫描过程一直进行到qa或qb有一个为空为止,然后将有剩余结点的链表接在结果表上。所得pa指向的链表即为两个多项式之和。5.实验程序代码及运行结果:#include"stdafx.h"#include#include#include#include#defineNULL0typedefstructNODE

4、{floatcoef;//系¦Ì数ºyintexpn;//指?数ºystructNODE*next;}NODE;NODE*Creat(intn);voidprint(NODE*head);NODE*AddPolyn(NODE*head1,NODE*head2);NODE*Delfirst(NODE*head,NODE*q);voidInsertBefore(NODE*p1,NODE*p2);intcompare(inta,intb);/*创ä¡ä建¡§链¢¡ä表À¨ª*/NODE*Creat(intn){NODE*current,*previou

5、s,*head;inti;head=(NODE*)malloc(sizeof(NODE));/*创ä¡ä建¡§头ª¡¤结¨¢点Ì?*/previous=head;for(i=0;icoef,¤t->expn);previous->next=current;previous=current;}previous->next=NULL;ret

6、urnhead;}/*一°?元a多¨¤项?式º?的Ì?想?加¨®,ê?总Á¨¹体¬?考?虑?,ê?可¨¦分¤?qa的Ì?指?数ºy比À¨¨qb小?,ê?或¨°等̨¨于®¨²pb(如¨?果?系¦Ì数ºy相¨¤加¨®等̨¨于®¨²0和¨ª不?等̨¨于®¨²0),或¨°大䨮于®¨²pb里¤?面?由®¨¦InsertBefore和¨ªDelfirst两¢?个?小?模¡ê块¨¦组Á¨¦成¨¦一°?部?分¤?*/NODE*AddPolyn(NODE*head1,NODE*head2){NODE*ha,*hb,*qa,*qb;inta,b;float

7、sum;ha=head1;/*ha和¨ªhb指?向¨°头ª¡¤结¨¢点Ì?*/hb=head2;qa=ha->next;/*qa和¨ªqb指?向¨°头ª¡¤结¨¢点Ì?的Ì?下?一°?个?结¨¢点Ì?*/qb=hb->next;while(qa&&qb)/*qa和¨ªqb均¨´非¤?空?*/{a=qa->expn;b=qb->expn;switch(compare(a,b)){case-1:/*qa->expnexpn*/ha=qa;qa=qa->next;break;case0:sum=qa->coef+qb->coef;/*系¦Ì数

8、ºy的Ì?和¨ª*/if(sum!=0.0){/*如¨?果?不?是º?0.0*/qa->coef=sum;/*改?变À?系¦Ì数ºy*/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。