我有这个项目,我必须提出实现哈密顿循环的Java源代码。 我在谷歌搜索,至少现在我知道汉密尔顿循环是什么,除了起始顶点之外只穿过所有顶点的路径,因为它也是最后一个顶点(告诉我,如果我错了)。 问题是我不知道如何实现它。基本上,我的问题是:
答案 0 :(得分:3)
答案 1 :(得分:0)
这是家庭作业吗?如果是这样,请将其标记为。
如果可以使用递归(如果图形太大则不是这种情况),很容易实现它。你要做的是编写一个函数,将图形作为参数(对此有不同的表示),函数检查图形是否只包含起始点,如果是,则返回,如果没有返回,则递归调用自身每个节点N仍然在图中,并将图形减去节点N作为参数。
答案 2 :(得分:0)
最简单的方法是从一个节点开始,“标记它”,选择下一个可到达的“未标记”节点,“标记它”,并继续直到:
该算法可以通过多种方式进行优化,但我会告诉您。您找到的任何解决方案都将是NP完整的。
至于他们的使用,我只在Graph理论和AI类中看到它们(这是一个特殊的旅行者问题,每个边缘的成本为1)并且它们从未告诉我实际用途。
答案 3 :(得分:0)
(B)实际应用