Python|火车在Y型调度线的调度
Posted 算法与编程之美
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python|火车在Y型调度线的调度相关的知识,希望对你有一定的参考价值。
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
问题描述
假设火车调度场有一个Y型调度线,其中一条支线上有一列客车车厢,其中任意交错出现硬座车厢和卧铺车厢,现需要将它们重新排列为硬座在前卧铺在后的一列客车,从另一支线推出。这里只有一个车头在Y型铁路顶端,请为其设计一个调度算法。
解决方案
首先,分析问题。该火车需要将硬卧交错的车厢重新排列为硬卧在前卧铺在后。其次,对于火车这一类重新排列的现实场景,我们应根据现实情况进行解决。故此,在这类题中,我们应利用栈的先进后出、后进先出的思想,而不采用队列进行解决。
解决思路:
1.让火车车厢依次进入。
2.判断火车车厢的类型(硬座车厢、卧铺车厢)。
3.若硬座车厢进栈,则让其与车头或者硬座车厢相接;相反,卧铺车厢进栈,则让其出栈。
4.最后火车车厢已全部进栈出栈,则让卧铺车厢全部进栈
while "支线上有车厢": if "车厢" == "硬座车厢": 连接车头或硬座车厢 elif "车厢" == "卧铺车厢": 进入另一条支线 else "车厢" == None: 另一支线所有卧铺车厢连接硬座车厢 |
结语
本文主要围绕如何利用栈解决火车调度这一问题展开。在学习过程中,我们发现在解决问题以及编写代码中,我们已经能够很好的运用栈的思想解决问题,并且知道在解决问题时,我们要根据实际情况进行分析。但是在编写代码过程中,仍不能熟练的编写,以及会出现一些不必要的错误。在以后的学习中应当时常进行练习,并进行编写,减少不必要错误的发生。
实习编辑:王晓姣
作者:钟妍,杨月涵,欧恒丽
稿件来源:深度学习与文旅应用实验室(DLETA)
以上是关于Python|火车在Y型调度线的调度的主要内容,如果未能解决你的问题,请参考以下文章