电竞比分网-中国电竞赛事及体育赛事平台

分享

Python|火車在Y型調(diào)度線的調(diào)度

 算法與編程之美 2021-05-16

問題描述

假設(shè)火車調(diào)度場有一個Y型調(diào)度線,其中一條支線上有一列客車車廂,其中任意交錯出現(xiàn)硬座車廂和臥鋪車廂,現(xiàn)需要將它們重新排列為硬座在前臥鋪在后的一列客車,從另一支線推出。這里只有一個車頭在Y型鐵路頂端,請為其設(shè)計一個調(diào)度算法。

解決方案

首先,分析問題。該火車需要將硬臥交錯的車廂重新排列為硬臥在前臥鋪在后。其次,對于火車這一類重新排列的現(xiàn)實場景,我們應根據(jù)現(xiàn)實情況進行解決。故此,在這類題中,我們應利用的先進后出、后進先出的思想,而不采用隊列進行解決。
解決思路:
1.讓火車車廂依次進入。
2.判斷火車車廂的類型(硬座車廂、臥鋪車廂)。
3.若硬座車廂進棧,則讓其與車頭或者硬座車廂相接;相反,臥鋪車廂進棧,則讓其出棧。
4.最后火車車廂已全部進棧出棧,則讓臥鋪車廂全部進棧

while "支線上有車廂":

       if "車廂" == "硬座車廂":

           連接車頭或硬座車廂

          elif  "車廂" == "臥鋪車廂":

                 進入另一條支線

                 else "車廂" == None:

                        另一支線所有臥鋪車廂連接硬座車廂

結(jié)語

本文主要圍繞如何利用棧解決火車調(diào)度這一問題展開。在學習過程中,我們發(fā)現(xiàn)在解決問題以及編寫代碼中,我們已經(jīng)能夠很好的運用棧的思想解決問題,并且知道在解決問題時,我們要根據(jù)實際情況進行分析。但是在編寫代碼過程中,不能熟練的編寫,以及會出現(xiàn)一些不必要的錯誤。在以后的學習中應當時常進行練習,并進行編寫,減少不必要錯誤的發(fā)生
 

實習編輯:王曉姣

作者:鐘妍,楊月涵,歐恒麗

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多