上机题 重要程序.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上机题 重要程序

/*4、N个人围成一圈顺序编号,从1号开始按1、2、3顺序报数,报3者退出圈外,其余的人再从1、2、3开始报数 ,报3的人再退出圈外,依次类推。请按退出顺序输出每个退出人的原序号。要求使用环行链表编程。*/ #includestdio.h #includestdlib.h typedef struct DulNode{ int data; struct DulNode *prior; struct DulNode *next; }DulNode,*DulLinkList;//定义循环双链表的数据结构 void main(){ int n; scanf(%d,n); //DulNode *L=(DulNode *)malloc(sizeof(DulNode));//表头指针L //L-data=0; //DulNode *q=L; DulNode *p; DulNode *l; p=(DulNode *)malloc(sizeof(DulNode)); p-data=1; l=p; DulNode *q; for(int i=2;i=n;i++){//建立n个链表结点,将结点链接至循环双链表 q=(DulNode *)malloc(sizeof(DulNode)); q-data=i; p-next=q; q-next=p; q-prior=p; p-prior=q; p=q; } p-next=l; l-prior=p;//循环双链表建立完毕 p=l; q=p-next; DulNode *r; while(q-next!=NULLq-next!=q){ r=q-next; printf(%d-,r-data); r-next-prior=q; q-next=r-next; free(r);//free()函数包含在文件stdlib.h中 p=q-next; q=p-next; } printf(%d\n,q-data); } /*2007-7.键盘输入正整数序列-1结尾,以此按升序建立双向循环链表,并降序输出*/ #includeiostream #includeiomanip #includemath.h using namespace std; #define n 100 typedef struct DulNode{ int data; struct DulNode *prior; struct DulNode *next; }DulNode; void main(){ int i; int j=0; DulNode *L; L=(DulNode *)malloc(sizeof(DulNode));//建立头结点L L-data=-1; DulNode *p; p=L; L-next=L; L-prior=L; cini; while(i!=-1) { DulNode *q; q=(DulNode *)malloc(sizeof(DulNode)); q-data=i; if(q-datap-data)//结点按升序链接 { q-prior=p; p-next=q; q-next=L; L-prior=q; p=q; } else { while(p-prior-dataq-data)p=p-prior;//当前结点值小于链表最后一个结点时,向前找出比当前值小的结点的位置并插入 q-next=p; q-prior=p-prior; p-prior-next=q; p-prior=q;} cini;} p=L; while(p-prior!=L)//降序输出 {coutp-prior-data ;p=p-prior;} } /*2.创建一个CPoint类,代表平面直角坐标系中的点,创建构造函数和运算符重载函数,运算符重载为 类重载(非友元重载),可以实现计算两个点之间的距离。可以根据需要加入自己的成员变量或成员函数 要求:1。输入两个点的坐标,输出两个点之间的距离2。重载运算符为“-”*/ #includestdio.h #includeiostream.h #includemath.h void main(){ class CPoint{ private: float x,y; public: CPoint(){} CPoint(float xx,float yy) { x=xx; y=yy; } CPoint operator -(CPoint cp){ return CPoint(x-cp.x,y-cp.y); } void getdistance(){ cout两点距

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档