




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京理工大学数据结构实验11、采用单向环表实现约瑟夫环。请按以下要求编程实现:①从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表。环表中的结点编号依次为1,2,……,m。②从键盘输入整数s(1<=s<=m)和n,从环表的第s个结点开始计数为1,当计数到第n个结点时,输出该第n结点对应的编号,将该结点从环表中消除,从输出结点的下一个结点开始重新计数到 n,这样,不断进行计数,不断进行输出,直到输出了这个环表的全部结点为止。例如,m=10,s=3,n=4。则输出序列为:6,10,4,9,5,2,1,3,8,7。#include<stdio.h>#include<malloc.h>#defineERROR0typedefstructLNode{intnum;structLNode*next;}LNode,*Linklist;voidmain(){intm,s,n,i,j;Linklisthead,p,q;printf("inputm:\n");scanf("%d",&m);printf("inputsandn:\n");scanf("%d%d",&s,&n);}}}}if(!(head=(Linklist)malloc(sizeof(LNode))))returnERROR;head->next=head;head->num=m;for(i=m-1;i>0;i--){p=(Linklist)malloc(sizeof(LNode));if(!p)returnERROR;p->next=head->next;p->num=i;head->next=p;}p=head->next;while(p->next->num!=s)p=p->next;for(i=m;i>1;i--){for(j=1;j<n;j++)p=p->next;q=p->next;p->next=q->next;printf("%d,",q->num);free(q);}printf("%d。\n",p->num);2、归并顺序表请按以下要求编程实现:从键盘输入两个升序排列的整数序列linka和linkb,每个序列以输入0为结束标记。将链表linka和linkb归并为linkc,linkc仍然为升序排列。归并完成后,linka和linkb为空表。输出linkc。对linkc进行处理,保持升序不变,删除其中重复的整数,对重复的整数只保留一个,输出删除重复整数后的链表。例如:linka输入为:10 20 30 40 50 0linkb输入为:15 20 25 30 35 40 45500归并后的linkc为:10152020253030354040455050删除重复后的linkc为:101520253035404550#include<stdio.h>#include<malloc.h>#defineERROR0typedefstructLNode{intdata;structLNode*next;}LNode,*Linklist;LinklistMergeList(LinklistLa,LinklistLb){Linklistpa,pb,pc,Lc,q;pa=La->next;pb=Lb->next;Lc=(Linklist)malloc(sizeof(LNode));if(!Lc)returnERROR;Lc->next=NULL;pc=Lc;while(pa&&pb){q=(Linklist)malloc(sizeof(LNode));if(!q)returnERROR;if(pa->data<=pb->data){q->data=pa->data;q->next=pc->next;pc->next=q;pc=q;pa=pa->next;}else{q->data=pb->data;q->next=pc->next;pc->next=q;pc=q;pb=pb->next;}while(pa){q=(Linklist)malloc(sizeof(LNode));if(!q)returnERROR;q->data=pa->data;q->next=pc->next;pc->next=q;pc=q;pa=pa->next;}while(pb){q=(Linklist)malloc(sizeof(LNode));if(!q)returnERROR;q->data=pb->data;q->next=pc->next;pc->next=q;pc=q;pb=pb->next;}free(La);free(Lb);returnLc;}LinklistCreatlist(LinklistL){Linklistp,q;inti;L=(Linklist)malloc(sizeof(LNode));if(!L)returnERROR;L->next=NULL;p=L;scanf("%d",&i);while(i){q=(Linklist)malloc(sizeof(LNode));if(!q)returnERROR;q->data=i;q->next=p->next;q=q->next;q=q->next;q=q->next;q=q->next;p->next=q;p=q;scanf("%d",&i);}returnL;}voidOutput(LinklistL){Linklistp=L->next;while(p->next){printf("%d",p->data);p=p->next;}printf("%d\n",p->data);}voidDelete(LinklistL){Linklistp,q,r;p=L->next;q=L->next->next;while(q!=NULL){if(q->data==p->data){r=q;}}p->next=r->next;free(r);}else{p=p->next;q=q->next;}}}voidmain(){LinklistLa,Lb,Lc;printf("inputlinka:\n");La=Creatlist(La);printf("inputlinkb:\n");Lb=Creatlist(Lb);Lc=MergeList(La,Lb);printf("linkc:\n");Output(Lc);Delete(Lc);printf("linkc':\n");Output(Lc);
Processreturned3{6x3>executiontine;56^704苕P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师个人支教工作计划
- 价值链视角下乳业企业并购绩效分析
- 2-3跨境电商基础(项目2-任务3寻找可靠的货源)
- 暑期实践报告的心得
- 萍乡卫生职业学院《给水排水管网系统》2023-2024学年第二学期期末试卷
- 原材料加工合同范本
- 围挡销售安装合同范本
- Excel数据处理与分析-数据思维分析方法场景应用全套教学课件
- 甘肃机电职业技术学院《利息论》2023-2024学年第二学期期末试卷
- 2025届秦皇岛市青龙满族自治县数学五年级第二学期期末预测试题含答案
- 宗教活动场所财务管理办法
- 冀教版数学四年级(下册)观察物体(二)第2课时 观察立体
- 2024年中国科学技术大学少年创新班数学试题真题(答案详解)
- 中职统编《金属材料与热处理》系列课件 第4章 非合金钢(动画) 云天系列课件
- 2024年安徽机电职业技术学院高职单招(英语/数学/语文)笔试题库含答案解析
- 小升初时态专题复习-一般过去时态(讲义)人教PEP版英语六年级下册
- PCB电路板的手工焊接技术培训
- 左肺占位术后护理查房
- RCA根本原因分析法在护理不良事件中的应用课件
- 港口物流 第3版 课件全套 第1-13章 港口物流发展历史-保税物流
- 免疫工程与炎症疾病
评论
0/150
提交评论