算法与数萁峁埂坏脑怂算法与数据结构——栈的运算aspan class=

算法与数萁峁埂坏脑怂算法与数据结构——栈的运算aspan class=

ID:39580665

大小:49.50 KB

页数:13页

时间:2019-07-06

算法与数萁峁埂坏脑怂算法与数据结构——栈的运算aspan class=_第1页
算法与数萁峁埂坏脑怂算法与数据结构——栈的运算aspan class=_第2页
算法与数萁峁埂坏脑怂算法与数据结构——栈的运算aspan class=_第3页
算法与数萁峁埂坏脑怂算法与数据结构——栈的运算aspan class=_第4页
算法与数萁峁埂坏脑怂算法与数据结构——栈的运算aspan class=_第5页
资源描述:

《算法与数萁峁埂坏脑怂算法与数据结构——栈的运算aspan class=》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一:完成一元多项式的表示及相加运算一、实验目的和要求完成一元多项式的表示及相加运算。(1)掌握线性表的插入、删除、查找等基本操作设计与实现(2)学习利用线性表提供的接口去求解实际问题(3)熟悉线性表的的存储方法二、实验内容和原理1.实验内容设计一个一元多项式的简单计算程序,其基本功能有:(1)输入并建立多项式;(2)输出多项式;(3)多项式的相加运算。利用单链表实现。2.实验原理使用单链表实现一元多项式的存储,并实现两个一元多项式的加法运算。三、实验环境硬件:(1)学生用微机(2)多媒体教室或远程教学(3)局域网环境软件:(1)Wi

2、ndowsXP中文操作系统(2)VC++6.0四、算法描述及实验步骤描述:加法:输入建立一元多项式,进行简单加法运算,输出结果;通过建立单链表A和B分别存放多项式的a和b的各项系数及指数;并且利用A使得不产生新的节点而在A中存放数据运算结果;该过程通过定义指针变量p和q使它们分别指向两个多项式的第一个节点,之后依次比较它们所指向的项的指数,即情况一,指数相等时系数相加且和不为零,修改当前p所指项的系数(和),同时删除q所指项,若和为零则同时删除p和q各自所指;情况二,p当前项指数大于q当前项,将q所指插入p所指之前作为结果项之一;情况三

3、,p当前项指数小于q当前项,p所指作为多项式和的一项,移动p指向下一项,进行比较,在移动p,q至其中一个链空,把另一个链余下节点插在p所指之后;1,加法算法如下:polynomial*polyadd(polynomial*A,polynomial*B){polynomial*p,*q,*s,*r;floatx;p=A->next;q=B->next;s=p;while((p!=NULL)&&(q!=NULL))if((p->exp)>(q->exp)){r=q->next;q->next=p;s->next=q;s=q;q=r;}els

4、eif((p->exp)<(q->exp)){s=p;p=p->next;}else{x=(p->coef)+(q->coef);/*if(x!=0){p->coef=x;s=p;}else{s->next=p->next;free(p);}*/p=s->next;r=q;q=q->next;free(r);}if(q!=NULL)s->next=q;free(B);returnA;}2、程序代码#include#include#includeusingnamespacestd;

5、structNode{floatcoef;//结点类型intexp;};typedefNodepolynomial;//链表结点的定义structLNode{polynomialdata;//链表类型LNode*next;};typedefLNode*Link;voidCreateLink(Link&L,intn);voidPrintList(LinkL);voidPolyAdd(Link&pc,Linkpa,Linkpb);intJudgeIfExpSame(Linkpa,Linke);voidDestroyLink(Link&L);

6、intCompareIfNum(inti);voidDestroyLink(Link&L){Linkp;p=L->next;while(p){L->next=p->next;deletep;p=L->next;}deleteL;L=NULL;}//创建含有n个链表类型结点的项,即创建一个n项多项式voidCreateLink(Link&L,intn){if(L!=NULL){DestroyLink(L);}Linkp,newp;L=newLNode;L->next=NULL;(L->data).exp=-1;//创建头结点p=L;for

7、(inti=1;i<=n;i++){newp=newLNode;cout<<"请输入第"<>(newp->data).coef;cout<<"指数:";cin>>(newp->data).exp;if(newp->data.exp<0){cout<<"您输入有误,指数不允许为负值!"<next=NULL;p=L;if(newp->data.coef==0){cout<<"系数为零,重新输入!

8、"<next!=NULL)&&((p->next->data).exp<(newp->data).exp)){p=p->ne

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

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

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