




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计课程设计报告程序设计课程设计报告设计人:电气QU42李艳平(11150038)日期:2021-11-29指导教师:桂超设计题目:链表操作一、设计任务1、创立一个单链表,并返回头结点的地址head2、编写函数circulachain,将上述单链表改为单循环链表3、编写函数addnode,在数据为x的结点之后插入数据为y的结点4、编写函数delenode,删除单链表中数据为x的结点5、解决约瑟夫问题:有n个人,围坐一圈,对他们从1开始编号,即1,2,3,n,如果从某一个人开始报数,他报数1,按顺时针进行,紧挨的人报数2,再往下的人跟着报3,一直报到k,凡报到k的人出歹U,再往下,继续从1开
2、始报数,2,3,一直报到k,凡报到k的人出列.试输出该问题中顺序出列的人的名字.二、功能描述创立单链表函数:chain*crechain(char*ch)创立单循环链表函数:chain*circulchain(char*ch)销毁链表:voidDestroy(chain*head)显示链表中每个结点的数据:voidShow(chain*head)插入结点函数:voidAddNode(chain*head,charx,chary)删除结点函数:voidDeleNode(chain*head,charx)三、程序实现1、单链表的根本操作:#include<iostream>usingn
3、amespacestd;structchain(chardata;chain*next;);chain*crechain(char*ch)创立单链表(inti;chain*head=NULL,*P=NULL,*q=NULL;for(i=0;chi!=,(T;i+)(p=newchain;p->data=chi;if(head=NULL)(head=p;)else(q->next=p;)q=P;)q->next=NULL;return(head);)voidAddNode(chain*head,charx,chary)/*插入结点*/chain*r,*s;if(head=NUL
4、L)cout«''链表为空!n«endl;else(r=head;while(r!=NULL)(if(r->data!=x)(r=r->next;)elsebreak;)if(r=NULL)coutcc没有数据为x的节点!<<endl;else(s=newchain;s->data=y;s->next=r->next;r->next=s;voidDeleNode(chain*head,charx)/*删除结点*/(chain*p=head,*s;if(head=NULL)cout«''
5、链表为空!n«endl;if(head->data=x)(head=p->next;deletep;)else(while(p->next!=NULL)(if(p->next->data!=x)p=p->next;elses=p->next;p->next=s->next;deletes;break;)voidShow(chain*head)输出链表(chain*p;p=head;while(p!=NULL)(cout«p->data;p=p->next;)cout«HnH;voidDestroy(
6、chain*head)销毁链表chain*p;while(head!=NULL)(p=head;head=p->next;deletep;)intmain()(chain*head;head=crechain(Habcdn);Show(head);AddNode(head,T);Show(head);DeleNode(headJc');Show(head);Destroy(head);return0;)2、单循环链表:chain*circulchain(char*ch)(inti;chain*head=NULL,*P=NULL,NULL,*r;for(i=0;chi!=AO1;i
7、+)(p=newchain;p->data=chi;if(head=NULL)(head=p;)else(q->next=p;)q=p;)q->next=head;return(head);)3、约瑟夫问题:#include<iostream>usingnamespacestd;structJoseph(charch;Joseph*next;);Joseph*head,tail;/Joseph结构指针,全局变voidcreate(intn)给每个结点数据赋值(inti;Joseph*p,*q;p=(Joseph*)malloc(sizeof(Joseph);p-&
8、gt;ch='A'p->next=NULL;head=p;q=p;for(i=1;i<n;i+)p=(Joseph*)malloc(sizeof(Joseph);p->ch='A'+i;q->next=p;q=P;点p->next=NULL;)tail=q;tail->next=head;)将p结点加到链表尾部让q指向链表尾部结链表尾部指向空voidDisplay(intm)依次输出出列的人的名字(intx=0;Joseph*p,*q;q=tail;dop赋值为q相邻的p=q->next;下一个结点X+;if(x%m=0)(coutvv出列的人为"vvp>chvvendl;q->next=p->next;deletep;p=NULL;)elseq=p;/q指向相邻的下一结点P)while(q!=q->next);剩余结点数不为1,那么继续循环head=q;)intmain()intn,m;head=NULL;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年四川宜宾市公务服务中心选调事业单位工作人员2人笔试高频难、易错点备考题库带答案详解
- 教师招聘之《小学教师招聘》练习题(一)含完整答案详解(易错题)
- 2025年教师招聘之《幼儿教师招聘》测试卷及答案详解1套
- 2025年梁山县辅警考试练习题库
- 2025年北京银行长沙分行社会招聘考试备考试题及答案解析
- 合肥市女性创业企业融资困境与破局之道:问题剖析与策略探寻
- 教师招聘之《幼儿教师招聘》测试卷带答案详解(黄金题型)
- 押题宝典教师招聘之《幼儿教师招聘》通关考试题库及参考答案详解一套
- 创伤关节骨科关于人工关节集采带量工作的自查整改与报告
- 药品科室会议记录范文
- 一例感染性休克患者护理查房汇报
- 电池热管理机组知识
- 《电力行业职业技能标准 农网配电营业工》
- 《戏曲服饰欣赏》课件
- 《公共基础知识》贵州省黔南布依族苗族自治州都匀市2024年事业单位考试统考试题含解析
- 电力营销业务培训课件
- 技术方案评审表
- 人教版九年级数学下册第二十六章反比例函数-作业设计
- 人美小学美术五上《第1课:肖像艺术》课件
- 湘美版五年级上册美术全册教案
- 浙江省通用安装工程预算定额第八册
评论
0/150
提交评论