货场车皮的编序问题

货场车皮的编序问题

ID:40887745

大小:20.82 KB

页数:12页

时间:2019-08-09

货场车皮的编序问题_第1页
货场车皮的编序问题_第2页
货场车皮的编序问题_第3页
货场车皮的编序问题_第4页
货场车皮的编序问题_第5页
资源描述:

《货场车皮的编序问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、8货场车皮的编序问题(2人)题目内容(小4号黑体)在火车货场车皮编解场,2条轨道连接到2条侧轨道,形成2个铁路转轨栈,期中左边轨道为车皮入口,编号为A;右边轨道为出口编号为D;2个铁路转轨栈分别编号为C和D入下图所示。编号为a,b,c,┅,的n各车皮依序停放在车皮的入口处,调度室要安排个车皮进出栈次序,使得在出口处个车皮按照预先制定的顺序依次出站。车皮移动时只能按照从左到右的方向移动。a,b,c,┅ADBC铁路转轨栈┅┅实现要求:对于给定的车皮数n,以及各车皮的出站顺序,编程计算最优调度方案,使得移动车皮的次数最少。问题解决要用到堆栈,分别用顺序栈和链栈实现。数据输入

2、:由文件input.txt给出数据。第一行有1个正整数n,表示车皮数;接下来的1行是一个字符串,表示预先确定的车皮的出站顺序。数据输出:将计算得到的最优调度方案输出到文件output.txt,文件的第一行使最少移动次数m,接下来的m行使对于最优方案的m次移动。每次移动用“cXY”的3个字符表示,其中c表示车皮编号,X表示其时栈号,Y表示目标栈号。如果无法调度则输出“NoSolution!”输入文件示例输出文件示例input.txt3abcoutput.txt5cABbABaADbBDcBD#include#includetyped

3、efstruct{charstack[60];inttop;}Stack;intstepsum=0;//总步数voidinitialize(Stack*a)//初始化{a->top=0;}intRead_File(Stack*a,int*len)//读取文件{FILE*fp;intn=0,i=0;fp=fopen("input.txt","r");//打开文件if(fp==NULL){printf("打开文件失败");exit(0);}fscanf(fp,"%d",&n);//读取车皮数printf("车皮数是:%d",n);fscanf(fp,"%s",a-

4、>stack);//读取车皮编号printf("车皮编号:%s",a->stack);for(i=0;a->stack[i]!='';i++);if(i!=n)//读取到的车皮编号个数,和数字不相等时{printf("输入的车皮数和对应的车皮编号个数不相等请在input.txt中修改");fclose(fp);exit(0);//读取失败,返回0}a->top=n;*len=n;fclose(fp);return1;}//====================================================================

5、=================================voidok_Write_to_file(chara[][4]){FILE*fp;fp=fopen("output.txt","w");if(fp==NULL){printf("打开写入文件失败");exit(0);}intstep=stepsum,j=0;printf("%d",step);fprintf(fp,"%d",step);for(j=0;j

6、;}//=====================================================================================================voidfalse_Write_file(){FILE*fp;fp=fopen("output.txt","w");if(fp==NULL){printf("打开写入文件失败");exit(0);}fprintf(fp,"NoSolution!");fclose(fp);}//=========================================

7、============================================================intRank(charrank[],intk)//排序{inti=0,j=0;intmax_min;chartemp;for(;rank[i]!='';i++){max_min=i;for(j=i;rank[j]!='';j++){if(rank[max_min]rank[j]&&k==0)//由小到大{max_min=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。