ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:16.33KB ,
资源ID:3608652      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3608652.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实验代码.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构实验代码.docx

1、数据结构实验代码数据结构实验代码实验一:针对链式或顺序存储的线性表实现指定的操作题1 问题描述:有两个指数递减的一元多项式,写一程序先求这两个多项式的和,再求它们的积。基本要求:用带表头结点的单链表作为多项式的存储表示;要建立两个单链表;多项式相加就是要把一个单链表中的结点插入到另一个单链表中去,要注意插入、删除操作中指针的正确修改。题2 问题描述:编号为1,2,n的n个人围坐在一圆桌旁,每人持有一个正整数的密码。从第一个人开始报数,报到一个预先约定的正整数m时,停止报数,报m的人退席,下一个人又重新从1开始报数,依此重复,直至所有的人都退席。编一程序输出他们退席的编号序列。例如,设m=20,

2、n=7,7个人的密码依次是3,1,7,2,4,8,4,则退席的人的编号依次为6,1,4,7,2,3,5。基本要求:用不带表头结点的循环单链表表示围成圆圈的n个人;要求建立此循环单链表;某人离席相当于删除一个结点,要正确设置程序中循环终止的条件和删除结点时指针的修改变化。/实验1.1代码#includeusing namespace std;struct poNode float coef; int expn; poNode *next; ;class Polynomail public: Polynomail(int m=0); Polynomail(); int Print(); int P

3、olynLength(); Polynomail &AddPolyn(Polynomail &P2,Polynomail &P3); Polynomail &MultiplyPolyn(Polynomail &P2,Polynomail &P4); private: int InsertpoNode(); poNode *first; ;int main() int m; cout输入多项式P1项数m; Polynomail P1(m); if(P1.PolynLength()!=m) couterror!endl; return -1; cout输入多项式P2项数m; Polynomail

4、P2(m); if(P2.PolynLength()!=m) couterror!endl; return -1; cout多项式P1:; P1.Print(); cout多项式P2:; P2.Print(); Polynomail P3; P3=P1.AddPolyn(P2,P3); coutP1+P2:; P3.Print(); Polynomail P4; P4=P1.MultiplyPolyn(P2,P4); coutP1*P2:; P4.Print(); return 0;int Polynomail:InsertpoNode() if(first=NULL) first=new p

5、oNode; cout输入系数和指数:first-coef; cinfirst-expn; first-next=NULL;else poNode *p=new poNode; poNode *q=first; cout输入系数和指数:p-coef; cinp-expn; poNode *r; while(q-next!=NULL&q-expnexpn) r=q; q=q-next; if(q=first&q-next!=NULL) if(q-expn=p-expn) return -1; p-next=q; first=p; else if(q=first&q-next=NULL) if(p

6、-expnexpn) p-next=q; first=p; else if(p-expnq-expn) q-next=p; p-next=NULL; else return -1; else if(q-next=NULL&q!=first&p-expnq-expn) q-next=p; p-next=NULL; else if(q-expn=p-expn) return -1; r-next=p; p-next=q; return 0;Polynomail:Polynomail(int m) first=NULL; int i; for(i=0;im;i+) int r=InsertpoNod

7、e(); if(r=-1) break; int Polynomail:Print() poNode *p=first; coutf(x)=; if(first=NULL) coutNULLendl; while(p!=NULL) coutcoef*xexpn; if(p-next=NULL) coutendl; else coutnext; return 0;Polynomail:Polynomail() poNode *p=first; while(p!=NULL) p=p-next; delete first; first=p; int Polynomail:PolynLength()

8、int i=0; poNode *p=first; while(p!=NULL) p=p-next; i+; return i;Polynomail &Polynomail:AddPolyn(Polynomail &P2,Polynomail &P3) poNode *p=first; poNode *q=P2.first; P3.first=new poNode; poNode *r=P3.first; while(p!=NULL&q!=NULL) if(p-expn=q-expn) r-coef=p-coef+q-coef; r-expn=p-expn; p=p-next; q=q-nex

9、t; else if(p-expnexpn) r-coef=p-coef; r-expn=p-expn; p=p-next; else r-coef=q-coef; r-expn=q-expn; q=q-next; if(p!=NULL|q!=NULL) r-next=new poNode; r=r-next; else r-next=NULL; while(p!=NULL|q!=NULL) if(p!=NULL) r-coef=p-coef; r-expn=p-expn; p=p-next; else r-coef=q-coef; r-expn=q-expn; q=q-next; if(p!

10、=NULL|q!=NULL) r-next=new poNode; r=r-next; else r-next=NULL; return P3;Polynomail &Polynomail:MultiplyPolyn(Polynomail &P2,Polynomail &P4) poNode *p=first; while(p!=NULL) Polynomail P3; poNode *q=P2.first; P3.first=new poNode; poNode *r=P3.first; r-coef=p-coef*q-coef; r-expn=p-expn+q-expn; q=q-next

11、; while(q!=NULL) r-next=new poNode; r=r-next; r-coef=p-coef*q-coef; r-expn=p-expn+q-expn; q=q-next; r-next=NULL; P4=P4.AddPolyn(P3,P4); p=p-next; return P4;/实验1.2代码#includeusing namespace std;struct numNode int key; int num; numNode *next; ;int CreatCircleList(numNode *now,int length);int Loop(numNo

12、de *now,int m);int main()int m;int n;numNode *now=new numNode;cout请输入人数:n;cout请输入初始数m:m;CreatCircleList(now,n);Loop(now,m); return 0;int CreatCircleList(numNode *now,int length) if(length=0) couterror!num=1; cout请输入编号为1的人拥有的密码。now-key; numNode *p=now; int i; for(i=1;inext=new numNode; p=p-next; p-num=i+1; cout请输入编号为i+1的人拥有的密码。p-key; p-next=now; return 0;int Loop(numNode *now,int m)cout退席的人编号依次为:next!=now) s1=s1-next;while(s1-num!=s2-num) for(int i=0;inext; s2=s2-next; coutnumnext=s2; m=s1-key; delete s1; s1=temp; coutnumendl; return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1