分享

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

 算法与编程之美 2021-05-16

问题描述

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

解决方案

首先,分析问题。该火车需要将硬卧交错的车厢重新排列为硬卧在前卧铺在后。其次,对于火车这一类重新排列的现实场景,我们应根据现实情况进行解决。故此,在这类题中,我们应利用的先进后出、后进先出的思想,而不采用队列进行解决。
解决思路:
1.让火车车厢依次进入。
2.判断火车车厢的类型(硬座车厢、卧铺车厢)
3.若硬座车厢进栈,则让其与车头或者硬座车厢相接;相反,卧铺车厢进栈,则让其出栈。
4.最后火车车厢已全部进栈出栈,则让卧铺车厢全部进栈

while "支线上有车厢":

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

           连接车头或硬座车厢

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

                 进入另一条支线

                 else "车厢" == None:

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

结语

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

实习编辑:王晓姣

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

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多