版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构上机实验报告题目:用单循环链表解决约瑟夫问题学生姓名学生学号学院名称计算机学院专业计算机科学与技术时间2013.10.7PAGE1PAGE1目录第一章、需求分析…………11.1原题表述……………11.2所选的要求及整体规划……………1第二章、概要设计…………22.1抽象数据类型…………22.2算法……………………2第三章、详细设计…………33.1程序代码………………3第四章、调试分析…………74.1调试工作………………74.2时间复杂度…………7第五章、测试结果…………85.1输入数据和输出数据样例…………8计算机学院2012级数据结构上机实验报告PAGE8第一章需求分析1.1原题表述设n个人围坐在一圆桌周围,现在从第s个人开始报数,数到第m个人,让他出局;然后从出局者的下一人重新开始报数,数到第m个人,再让他出局······如此反复,直到所有的人全部出局为止。1.2所选的要求及整体规划 对于任意给定的n、s和m,求出这个n个人的出局序列,数据结构采用单循环链表。构造不带头结点的单循环链表。
第二章概要设计2.1抽象数据类型不带头结点的单循环链表2.2算法建立一个不带头结点的空循环链表,依次在链表中添加数据域为1~n的n个数据元素,此时指针head指向第一个元素,再用一个for循环让头指针head指向第s个元素,之后用while循环让head指向第m-1个元素,删除第m个元素,head指向第m+1个元素,直至链表中只剩一个元素。依次输出被删除的元素及最后剩余的元素。
第三章详细设计3.1程序代码#include<stdio.h>#include<malloc.h>typedefstructnode{ intdata; structnode*next;}node;//函数功能:构造不带头结点的循环链表并赋值1~n,头指针head指向第s个人node*create(intn,ints){ node*head; node*p,*q,*r;inti,j; if(n<=0)returnNULL;//若分配内存失败返回 //把长度为n的链表赋值1~n head=(node*)malloc(sizeof(node)); head->data=1; head->next=NULL; p=head; for(i=1;i<n-1;i++) { q=(node*)malloc(sizeof(node)); q->data=i+1; p->next=q; p=q; } //构造循环链表 q=(node*)malloc(sizeof(node)); q->data=n; p->next=q; q->next=head;//不带头结点 for(j=1;j<s;j++)//从第s个人开始数 { r=head->next; head=r; } returnhead;}intdel(node*head)//删除{ node*p,*q; if(head==NULL)return-1; p=head; q=p->next; p->next=q->next; p=q->next; free(q); head=p;return1;}intmain(){ intn,m,s,person; node*head,*r,*p; //输入n、m、s printf("Entern:\n"); scanf("%d",&n); printf("Enterm:\n"); scanf("%d",&m); printf("Enters:\n"); scanf("%d",&s); head=create(n,s);//head指向第s个人 while(head->next!=head)//循环结束后链表只剩一个元素 { //数到第m个删除,head指向m的前一个 for(inti=1;i<m-1;i++) { r=head->next; head=r; } person=head->next->data; printf("Number%disout\n",person); p=head->next->next; del(head); head=p; } person=head->data; printf("Number%disout\n",person); system("pause"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 围棋活动策划预算方案(3篇)
- 社区教育活动方案策划(3篇)
- 洗浴汤泉施工方案(3篇)
- 影城活动布置方案策划(3篇)
- 光模块施工方案(3篇)
- 活动策划方案班级疫情(3篇)
- 一线工作法建立调研工作制度
- 2025年高职(建筑工程技术)建筑施工技术试题
- 2025年大学生态学(系统实操技术)试题及答案
- 2025年大学人工智能(机器学习基础)试题及答案
- 2026年马年德育实践作业(图文版)
- 医院实习生安全培训课课件
- 四川省成都市武侯区西川中学2024-2025学年八上期末数学试卷(解析版)
- 2026年《必背60题》抖音本地生活BD经理高频面试题包含详细解答
- 2024人教版七年级数学上册全册教案
- GB/T 20033.3-2006人工材料体育场地使用要求及检验方法第3部分:足球场地人造草面层
- GB/T 18997.2-2020铝塑复合压力管第2部分:铝管对接焊式铝塑管
- GB/T 10067.47-2014电热装置基本技术条件第47部分:真空热处理和钎焊炉
- 状语从句精讲课件
- JJG544-2011《压力控制器检定规程》规程试题试题
- 施工现场车辆进出冲洗记录
评论
0/150
提交评论