- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构试验报告(华北电力大学科技学院).
华北电力大学科技学院
实 验 报 告
实验名称 数据结构试验
课程名称 数据结构
专业班级:软件09k1 学生姓名:李晓东
学 号:091909020111 成 绩:
指导老师:张琦 实验日期:2011年3月—6月实验一 顺序表及其应用
一、实验目的及要求
1、实验目的
(1)熟悉C++上机环境,进一步掌握C语言的结构特点。
掌握线性表的顺序存储结构的定义及C语言实现。
掌握线性表在顺序存储结构即顺序表中的各种基本操作。掌握栈的顺序表示和实现n个人围坐在圆桌周围,现从某个位置 i 上的人开始报数,数到 m 的人就站出来。下一个人,即原来的第m+1个位置上的人,又从1开始报数,再是数到m的人站出来。依次重复下去,直到全部的人都站出来,按出列的先后又可得到一个新的序列。由于该问题是由古罗马著名的史学家Josephus提出的问题演变而来,所以通常称为Josephus 问题。 n=8,m=4,i=1时,得到的新序列为:
4,8,5,2,1,3,7,6
编写程序选择模拟整个过程,并依次输出出列的各人的编号。#includestdio.h
#includestdlib.h
#define MAX 100
int main()
{
Int
i,k,out,all,count,start,person[100];//定义变量
printf(请输入起始时的人数:\n);
scanf(%d,all);
for(i=0;iall;i++) person[i]=i+1; //初始化数组
printf(请输入数数的周期:\n);
scanf(%d,count);
printf(你希望从第几个人开始?:\n);
scanf(%d,start);
i=start-1;//开始下标等于开始人数减一
if(startall)//若开始人数大于总人数提示出错
printf(error!\n);
k=0;//1 2 3 的计数器
out=0;//出局的人数
while(outall-1)
{
if(person[i]!=0)//取出后置零
k++;//计数器加一
if(k==count)
{
printf(%d ,person[i]);//打印输出该出局的人数
person[i]=0;//出局后此位置置零
k=0;//计数器置零
out++;//出局人数加一
}
i++;//人数后移加一
if(i==all) i=0;//当i=最后一个时,让i等于第一个
}
for(i=0;iall;i++)//循环输出最后一个人
{
if(person[i]!=0)//判断是否已经输出过
{
printf(%d ,person[i]);
break;
}
}
printf(\n);
system(pause);
return 0;
}
实验结果:
实验二 链表及其应用
一、实验目的及要求
1、实验目的
(1)熟悉C++上机环境,进一步掌握C语言的结构特点。
掌握线性表的链式存储结构单链表的定义及C语言实现。
掌握线性表在链式存储结构单链表中的各种基本操作。掌握栈的表示和实现n个人围坐在圆桌周围,现从某个位置 i 上的人开始报数,数到 m 的人就站出来。下一个人,即原来的第m+1个位置上的人,又从1开始报数,再是数到m的人站出来。依次重复下去,直到全部的人都站出来,按出列的先后又可得到一个新的序列。由于该问题是由古罗马著名的史学家Josephus提出的问题演变而来,所以通常称为Josephus 问题。 n=8,m=4,i=1时,得到的新序列为:
4,8,5,2,1,3,7,6
用单向循环链表存储结构模拟此过程。
实现提示:typedef struct Node
{?? int data;
???? struct Node *next; }*nodetype;//定义指向链节点类型的指针
先建立单向循环链表。
构造一个结点需用到C语言的标准函数malloc(),如给指针变量p分配一个结点的地址:p=()malloc(sizeof(struct Node));该语句的功能是申请分配一个类型为的结点的地址空间,并将首地址存入指针变量p 中。当结点不需要时可以用标准函数free(p)释放结点存储空间,这时p为空值(NULL)。#i
您可能关注的文档
最近下载
- 城市排水管网的维护与管理.pptx VIP
- 成渝经济区ppt完整版.pptx VIP
- 《健康管理的基本策略与服务方式》.ppt VIP
- 排水系统中的泵站运行与维护.pptx VIP
- 排水管网维护检修.ppt VIP
- 2025新型智慧城市建设规范第7部分应用标准第9分部分智慧档案技术规范.docx VIP
- 给水排水管道工程 第12章 给水排水管网管理与维护.ppt VIP
- 2024年中式烹调师(高级技师)理论考试题库大全(含答案).docx VIP
- 2025新型智慧城市建设规范第7部分应用标准第13分部分运维管理平台技术规范.docx VIP
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案.docx VIP
文档评论(0)