我有一點點問題,這個問題的算法。飛旅客航空公司
問題陳述:
飛翔的旅行者航空公司(FTAir)想要一個程序來處理客戶請求從一些起點城市飛往某個目的地城市。對於每位客戶,請說明是否存在從出發城市到目的地城市的FTAir航班序列併產生行程 - 航班序列。輸入:三個輸入文本文件,指定所有航班信息如下: •FTAir服務的城市名稱(至少15個城市)。 •雙城市名稱;每一對代表FTAir航班之一的出發地和目的地。 •一對城市名稱;每對錶示從某個出發城市飛往某個目的地的請求(至少5個請求具有不同的場景)。每個請求都考慮單向飛行。
規則:
尋找從起點城市到目的地城市的路徑,如果關於其參觀cities.Do不能訪問一個城市比once.If有多個路徑的更多訂單exists.Maintain信息,你可以將它們全部列出並找到最不訪問的城市。 (可選的)。此外,通過堆棧(使用鏈表)和遞歸方法!
我的做法是:
首先,我們需要一個數據結構來包含所有輸入的文本文件。比方說,我們有一個數組中的城市名稱,二維數組中的城市對(起源 - >目的地),以及二維數組中的重建。
對於要退出的請求矩陣中的路徑,它必須由我們的FTAir服務,所以對於每個請求我們需要搜索城市數組中的起點和目的地,如果兩者匹配,那麼只有我們繼續到我們的下一步。
找到匹配後,我們必須將請求原點映射到航班起點,即我們必須檢查是否有任何要求的起點航班,如果不是,則再次沒有可能的旅行請求路徑。
但是,如果有匹配,我們把這個原點放在一個堆棧上,並檢查它的目的地,並將它與請求的目的地進行比較,如果這是一個匹配我們有一個直接的航班,如果沒有把它進入堆棧並在飛行的二維數組中尋找目的地作爲原點。繼續執行程序,直到比賽結束。但是如果我們兩次訪問一個城市呢?請檢查您輸入到堆棧中的數據,如果發現重複數據,請中止!
我不能將我的想法轉換成代碼,任何人都可以幫助我嗎?
我們不能在這裏使用圖形數據結構,使用圖形和應用DFS,我們可以很容易地找到是否存在從原點到目的地的路徑,並且DFS使用遞歸,讓我知道我們是否可以使用圖形 – zenwraight
是的,我們可以使用任何實現遞歸或堆棧的方法(使用鏈表)! –