今日私は解決できない質問に遭遇しました。
チケットのルートを印刷する
頻繁に旅行者が旅行チケットをすべて徴収します。 チケットには2つの属性、開始旅行名と目的地名のみがあります。デリーからニューヨークへの例。 年末には、旅行者はすべてのチケットをまとめて、1年を通して旅行をマップしようとします。彼の考えられる旅行ルートを判読可能な形式で印刷します。彼は彼の出発地を覚えていない。彼はある場所を何度も訪れることができ、何度も何度も場所を回ることができます。
最初は、グラフを作成する(チケットAからBへの有向枝A→Bの意味)と、実数0(??)のノードからの単純な深さ最初の探索を使用して簡単に解決できると思っていました。しかし、私はそれが解決策を得るための正しい方法ではなく、ランダムな未接続ルートを印刷できることに気付きました。
進める正しい方法を提案してください。
「eulerian path」を検索 –
すべての旅行に関連するチケットがあると仮定すると(つまり、シカゴに飛行していない、ニューヨークにドライブしてボストンに飛んでいない)、AからBに飛んでいれば、次の旅はBで始まる必要があります。その制限を維持すると、ランダムで接続されていないパスが作成されなくなります。 –
@JimMischelは、現在B市にいて、宛先(a1-b、a2-b、a3-b ...)およびソース(b-c1、b-c2、b) -a1、...)どのように判断するか、都市B上で、どの経路が先に接続された経路につながるか(接続された手段の終点と始点は常に同じでなければならない)。 –