数据结构(c++)实验报告.doc

数据结构(c++)实验报告.doc

ID:57089440

大小:62.50 KB

页数:5页

时间:2020-08-01

数据结构(c++)实验报告.doc_第1页
数据结构(c++)实验报告.doc_第2页
数据结构(c++)实验报告.doc_第3页
数据结构(c++)实验报告.doc_第4页
数据结构(c++)实验报告.doc_第5页
资源描述:

《数据结构(c++)实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、兰州交通大学《数据结构与算法》课程设计姓名:张正邦学号:201408330班级:地信1401班专业:地理信息科学学院:测地学院任课教师:杜萍2015年12月28日题目一:(1)问题描述:6.编写一个程序,用单链表存储一元多项式,实现两个多项式的相加运算。(2)数据结构设计定义一个空链,构造一个多项式函数并初始化,用正序插入法插入多项式。多项式相加prep指向p的前驱,p、q分别指向多项式的第一项。因为是pb加到pa上,所以不需要使用q的前驱。第一种情况,p的指针域的值小于q的,指针只需要后移;第二种情况p的指针域的值大于q的,将q结点插入到p结点之前,最后系数相加对应多

2、项式存储到pc中。(3)程序代码#includeusingnamespacestd;/*结点的定义*/typedefstructLNode{floatcoef;intexp;structLNode*next;}LNode;typedefLNode*Polynomial;/*多项式的初始化*/voidinitDuoX(Polynomial&Px){Px=newLNode;Px->next=NULL;}/*用正序插入法建立多项式*/voidcreatDuoX(Polynomial&Px,intn){initDuoX(Px);LNode*p,*q;p=Px

3、;for(inti=0;i>q->coef>>q->exp;q->next=NULL;p->next=q;p=q;}}/*求多项式的长度*/intlengthDuoX(Polynomial&Px){LNode*p;intcount;p=Px->next;count=0;while(p!=NULL){p=p->next;count++;}returncount;}/*输出多项式*/voidoutputDuoX(Polynomial&Px){LNode*p;p=Px->next;inti;for(i=0;i

4、(Px);i++){cout<coef<<""<exp<<"";p=p->next;}cout<next;q=Pb->next;//p、q分别指向多项式的第一项。prep=Pa;//因为是Pb加到Pa上,所以此处不需要使用q的前驱。while(p&&q){if(p->expexp)//第一种情况,指针只需后移。{prep=p;p=p-

5、>next;}elseif(p->exp>q->exp)//第二种情况,将q结点插入到p结点之前。{u=q->next;q->next=p;prep->next=q;prep=q;q=u;}else//第三种情况,系数进行相加。{p->coef=p->coef+q->coef;if(p->coef==0)//系数相加等于0{LNode*temp1;LNode*temp2;temp1=p;temp2=q;prep->next=p->next;p=p->next;q=q->next;deletetemp1;//这里不能直接释放p结点。deletetemp2;}else{LN

6、ode*temp2;temp2=q;prep=p;p=p->next;q=q->next;deletetemp2;}}}if(q)prep->next=q;deletePb;returnPa;}voidmain(){PolynomialPa,Pb,Pc;cout<<"非递减输入多项式pa"<

7、东西,让我对单链表有了更深的理解,并且能够更加牢固的掌握它!

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

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

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