- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言编程笔试题大全
2007年03月19日 星期一 00:15
1、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合并成一个有序升序线形表
答案在 请化大学 严锐敏《数据结构第二版》第二章例题,数据结构当中,这个叫做:两路归并排序Linklist *unio(Linklist *p,Linklist *q){linklist *R,*pa,*qa,*ra;pa=p;qa=q;R=ra=p;while(pa-next!=NULLqa-next!=NULL){if(pa-dataqa-data){ra-next=qa;qa=qa-next;}else{ra-next=pa;pa=pa-next;}}if(pa-next!=NULL)ra-next=pa;if(qa-next!=NULL)ra-next==qa;return R;}
2.单连表的建立,把a--z26个字母插入到连表中,还要打印!??
???? node *p=NULL;
??????? node *head=(node*)malloc(sizeof(node));
??????? head-next=NULL;
??????? p=head;
??????? int longth=a-z;
??????? int i;
??????? while(i=longth)
??????? {
?????????????? node *temp;
?????????????? temp = (node *)malloc(sizeof(node));
?????????????? temp-data = i+a;temp-next=NULL;p=temp;
?????????????? p-next=p;
?????????????? i++;
??????? }
??????? return head;
print(head);
3、约瑟夫环: 约瑟夫环问题的一种描述是:编号为1.2.3…….n的n个人按顺时针方向围坐一圈,每人手持一个密码(正整数),开始任意选一个整数作为报数上限值,从第一 个人开始顺时针自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他顺时针下一个人开始重新从1开始报数,如此下去直到所有 的人全部都出列为止。试设计程序实现。 要求:利用循环链表存储结构模拟此过程,按照出列的顺序打印各人的编号。 测试数据:m的值初始为20:密码3 ,1,7,2,4,8,4。 正确的结果:6,1,4,7,2,3,5。 提示:程序运行后首先要求用户指定初始报数上限。然后读取各人的密码。设 n30
******算法思想:利用循环链表*************问题的规模是n个人,每次杀掉第m******个人,n和m由用户输入,程序输出最后******一个活着的人的编号*************/
#include iostreamusing namespace?? std;
/*****约瑟夫问题的节点*******/typedef?? struct node {int??? number;node * next;}yuesefu_node;
/**********建立n个人的循环链表*******/
yuesefu_node * create_chink(int n){yuesefu_node *head; //头指针yuesefu_node * p=new yuesefu_node; //p是第一个约瑟夫节点head=p;p-number=1;p-next=NULL;int i=2;while(i=n){?? yuesefu_node *q=new yuesefu_node; //新增一个约瑟夫节点?? q-number=i;?? if (i==n)?? {??? q-next=head;?? }?? else?? {??? q-next=NULL;?? }?? p-next=q;????? p=q;?? i++;}return?? head;}
void out_chink(yuesefu_node *head){yuesefu_node *p=head;while(p-next!=head){?? coutp-number?? ;?? p=p-next;}coutp-numberendl;}
void?? kill_out(yuesefu_node *head,int n,int m){if (nm){?? cout************************endl;
文档评论(0)