今天我遇到了一个我无法解决的问题。
从门票打印路线
经常旅行者收集他所有的旅行门票。 一张票只有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中,首先采取哪条路径将导致连接的路线(连接的方式结束点和起点应始终保持相同)。 –