实验内容:火车车厢重排问题。 实验说明: 转轨站示意图如下: 火车车厢重排过程如下: 3. 模块分析 1.void Output(int& minH,int& minQ,LinkQueueH[],int k,int n) 将车厢从缓冲轨出轨 2.bool Hold(int c,int &minH,int &minQ,LinkQueueH[],int k) 将车厢移入缓冲轨 3.bool Railroad(int p[],int n,int k) 将车厢直接移至出轨 4. 设计分析 用队列解决出列问题,这里采用的是顺序队列的存储结构。  采用的算法思想是:分别对k个队列初始化;初始化下一个要输出的车厢编号nowOut = 1; 依次取入轨中的每一个车厢的编号;如果入轨中的车厢编号等于nowOut,则输出该车厢;nowOut++;否则,考察每一个缓冲轨队列      for (j=1; j<=k; j++)    3.2.1 取队列 j 的队头元素c;   3.2.2 如果c=nowOut,则         3.2.2.1 将队列 j 的队头元素出队并输出;     3.2.2.2  nowOut++;   如果入轨和缓冲轨的队头元素没有编号为nowOut的车厢,则求小于入轨中第一个车厢编号的最大队尾元素所在队列编号j;如果 j 存在,则把入轨中的第一个车厢移至缓冲轨 j;如果 j 不存在,但有多于一个空缓冲轨,则把入轨中的第一个车厢移至一个空缓冲轨;否则车厢无法重排,算法结束
2021-11-01 22:07:15 363KB 数据结构 火车车厢重排问题 队列
1
数据结构,火车车厢重排问题,实验报告,有代码,实验结果截图,实验感想
2019-12-21 22:01:51 106KB 数据结构,火车车厢重排问题
1