- 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 学生姓名:李晓东
学 号:1 成 绩:
指导老师:张琦 实验日期:2011年3月—6月
实验一 顺序表及其应用
一、实验目的及要求
1、实验目的
(1)熟悉VC++上机环境,进一步掌握C语言的结构特点。
(2)掌握线性表的顺序存储结构的定义及C语言实现。
(3)掌握线性表在顺序存储结构即顺序表中的各种基本操作的实现。
(4)掌握栈和队列的顺序表示和实现。
2、实验要求
(1)用顺序存储结构实现栈和循环队列。
(2)编写完整程序完成下面的实验内容并上机运行。
(3)整理并上交实验报告。
二、实验内容
1. 约瑟夫环的实现:设有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)熟悉VC++上机环境,进一步掌握C语言的结构特点。
(2)掌握线性表的链式存储结构即单链表的定义及C语言实现。
(3)掌握线性表在链式存储结构即单链表中的各种基本操作。
(4)掌握栈和队列的链式存储结构的表示和实现。
2、实验要求
(1)用链式存储结构实现单链表(和单向循环链表)的建立、查找和删除等运算。
(2)编写完整程序完成下面的实验内容并上机运行。
(3)整理并上交实验报告。
二、实验内容
1.约瑟夫环的问题:设有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
{?? in
文档评论(0)