资源描述:
《河北工业大学数据结构》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、河北工业大学《数据结构》课程实验实验报告题目:Joseph问题求解算法的设计与实现专业:计算机班级:计8888姓名:wangdachui完成日期:2015/1/10一、试验内容编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。二、试验目的掌握链表的基本操作:插入、删除、查找等运算,能够灵活应用链表这种数据结构。三、流程图
2、输入总人数创建并初始化n个节点输入第一个报的数keyn==0Y报数过程N输出出列者的编号及密码结束n--四、源程序代码#include#includestructlist{intnum,code;structlist*next;};voidmain(){printf("Joseph问题求解算法的设计与实现");inti,j,m=1;intkey;//密码.intn;//人数.list*p,*s,*head;head=(list*)malloc(sizeof(list));//为头结点分配空间.p=head;prin
3、tf("输入人的总个数:");scanf("%d",&n);for(i=1;i<=n;i++){printf("第%d个人的密码:",i);scanf("%d",&key);//输入密码s=p;p=(list*)malloc(sizeof(list));//创建新的结点.s->next=p;p->num=i;p->code=key;}p->next=head->next;p=head;head=head->next;free(p);p=head;printf("输入第一个报的数:");scanf("%d",&key);printf("出列顺序为
4、:");for(;n>0;n--){p=head;for(j=1;jnext;}//报数过程i=p->num;key=p->code;printf("第%d号成员出列",i);s->next=p->next;head=p->next;//重新定义head,下次循环的开始结点.free(p);//释放已出列的结点.}}五、调试过程m的初值为20;n=7,7个人的密码依次为:3,1,7,2,4,8,4,首先m值为6(正确的出列顺序应为6,1,4,7,2,3,5)。六、结果分析河北工业大学《数据结构》课程实验实验报告题目
5、:实验二停车场管理专业:计算机班级:计7777姓名:doubi完成日期:2015/1/10一、试验内容设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已经停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出场为它让路,待该辆车开出大门外,其他车辆再按次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费
6、用二、试验目的(1)深入了解栈和队列的特性,掌握栈和队列的存储方法。(2)掌握栈和队列的基本操作,如初始化、入栈(队列)、出栈(队列)等,并能在实际问题背景下灵活运用。输入数据三、流程图判断车离开m==’e’
7、
8、m=’E’车到Q>n?Y存在便道存在停车场N车的位置便道离开车场最后一位后面车后退付费离开Y结束便道内车进场三、源程序代码#includevoidmain(){structchechang{inthm1,sk1;}a[5];//停车场structbiandao{inthm2,sk2;}b[5];//便道structtuichu{int
9、hm3,sk3;}c[4];//存放从停车场内退出的车intp=0,q=0,x=0,n,y,t,r,i,j,g,h,z;charm;printf("输入停车场容量和每分钟收费");scanf("%d%d",&n,&y);printf("输入数据:");for(;;){scanf("%c",&m);//判断输入数据if(m=='e'
10、
11、m=='E')break;scanf("%d%d",&t,&r);//t表示车牌号,r表示时间//车到达if(m=='a'
12、
13、m=='A'){if(p14、[p].sk1=r;printf("车