数据结构c++语言实验报告,数据结构(c++)实验报告

《数据结构(c++)实验报告》由会员分享,可在线阅读,更多相关《数据结构(c++)实验报告(5页珍藏版)》请在装配图网上搜索。

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)程序代码#include using namespace std; /*结点的定义*/ typedef struct LNode float coef; int exp; struct LNode *next; LNode; typedef LNode *Polynomial; /*多项式的初始化*/ void initDuoX(Polynomial &Px) Px=new LNode; Px-next=NULL; /*用正序插入法建立多项式*/ void creatDuoX(Polynomial &Px,int n) initDuoX(Px); L。

3、Node *p,*q; p=Px; for(int i=0;iq-coefq-exp; q-next=NULL; p-next=q; p=q; /*求多项式的长度*/ int lengthDuoX(Polynomial &Px) LNode *p; int count; p=Px-next; count=0; while(p!=NULL) p=p-next; count+; return count; /*输出多项式*/ void outputDuoX(Polynomial &Px) LNode *p; p=Px-next; int i; for(i=0;icoefexpnext; coutn。

4、ext; q=Pb-next;/p、q分别指向多项式的第一项。 prep=Pa;/因为是Pb加到Pa上,所以此处不需要使用q的前驱。 while (p&q) if(p-expexp)/第一种情况,指针只需后移。 prep=p; p=p-next; else if(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;。

5、 temp1=p; temp2=q; prep-next=p-next; p=p-next; q=q-next; delete temp1;/这里不能直接释放p结点。 delete temp2; else LNode *temp2; temp2=q; prep=p; p=p-next; q=q-next; delete temp2; if(q) prep-next=q; delete Pb; return Pa; void main() Polynomial Pa,Pb,Pc;cout非递减输入多项式paendl;creatDuoX(Pa,4); cout非递减输入多项式pbendl;creatDuoX(Pb,4); cout多项式和为endl;Pc=addDuoX(Pa,Pb); outputDuoX(Pc); (4)运行结果(5)心得体会写这个程序学到很多新的东西,让我对单链表有了更深的理解,并且能够更加牢固的掌握它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值