Python|火车在Y型调度线的调度

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python|火车在Y型调度线的调度相关的知识,希望对你有一定的参考价值。

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

问题描述

假设火车调度场有一个Y型调度线,其中一条支线上有一列客车车厢,其中任意交错出现硬座车厢和卧铺车厢,现需要将它们重新排列为硬座在前卧铺在后的一列客车,从另一支线推出。这里只有一个车头在Y型铁路顶端,请为其设计一个调度算法。

解决方案

首先,分析问题。该火车需要将硬卧交错的车厢重新排列为硬卧在前卧铺在后。其次,对于火车这一类重新排列的现实场景,我们应根据现实情况进行解决。故此,在这类题中,我们应利用栈的先进后出、后进先出的思想,而不采用队列进行解决。

解决思路:

1.让火车车厢依次进入。

2.判断火车车厢的类型(硬座车厢、卧铺车厢)。

3.若硬座车厢进栈,则让其与车头或者硬座车厢相接;相反,卧铺车厢进栈,则让其出栈。

4.最后火车车厢已全部进栈出栈,则让卧铺车厢全部进栈

 

 

while "支线上有车厢":

       if "车厢" == "硬座车厢":

           连接车头或硬座车厢

          elif  "车厢" == "卧铺车厢":

                 进入另一条支线

                 else "车厢" == None:

                        另一支线所有卧铺车厢连接硬座车厢

结语

本文主要围绕如何利用栈解决火车调度这一问题展开。在学习过程中,我们发现在解决问题以及编写代码中,我们已经能够很好的运用栈的思想解决问题,并且知道在解决问题时,我们要根据实际情况进行分析。但是在编写代码过程中,仍不能熟练的编写,以及会出现一些不必要的错误。在以后的学习中应当时常进行练习,并进行编写,减少不必要错误的发生。

 

实习编辑:王晓姣

作者:钟妍,杨月涵,欧恒丽

稿件来源:深度学习与文旅应用实验室(DLETA)

以上是关于Python|火车在Y型调度线的调度的主要内容,如果未能解决你的问题,请参考以下文章

车厢调度

车厢调度(train.cpp)

C++栈类火车调度问题MFC栈类

GRYZ 模 拟 赛 系 列 Xxy 的车厢调度

天使之城

(考试大整理~)Xxy 的车厢调度x