今天我遇到了一個我無法解決的問題。
從門票打印路線
經常旅行者收集他所有的旅行門票。 一張票只有2個屬性,開始旅程地點名稱和目的地名稱。從德里到紐約的例子。 在年底,旅行者將所有的票都放在一起,並嘗試繪製全年的旅程。以可讀格式打印他可能的旅行路線。他不記得他的起始位置。他可以多次訪問一個位置,也可以多次來回地點。
最初我認爲它可以簡單地通過製作一張圖(票-A到B意味着一個有向邊A-> B)並使用一個簡單的深度第一次遍歷從一個不等於0(??)的節點來解決。但後來我意識到它不是獲得解決方案的正確方法,因爲它可能會打印隨機未連接的路線。
請建議正確的方法繼續。
搜索「eulerian path」 –
如果我們假設所有旅行都有相關的機票(即他沒有飛往芝加哥,然後開車到紐約並飛往波士頓),那麼如果他從A飛到B,接下來的旅程必須從B處開始。維護該限制將阻止您創建隨機的,未連接的路徑。 –
@JimMischel假設我們目前在城市B並且有許多票據涉及B作爲目的地(a1-b,a2-b,a3-b ...)以及來源(b-c1,b-c2,b -a1,...)現在如何判斷,在城市B中,首先採取哪條路徑將導致連接的路線(連接的方式結束點和起點應始終保持相同)。 –