哈密尔顿python实现
时间: 2024-03-15 15:40:54 浏览: 80
哈密尔顿回路是指一个无向图中,从某个顶点出发,经过每个顶点恰好一次,最后回到起始顶点的路径。在Python中,可以使用深度优先搜索(DFS)算法来实现哈密尔顿回路的查找。
以下是一个简单的哈密尔顿回路的Python实现示例:
```python
def hamiltonian(graph, start, path=[]):
# 将当前节点添加到路径中
path = path + [start]
# 如果所有节点都已经在路径中,则找到了哈密尔顿回路
if len(path) == len(graph):
# 检查最后一个节点是否与起始节点相邻
if path[-1] in graph[path[0]]:
return path
else:
return None
# 遍历与当前节点相邻的所有未访问节点
for node in graph[start]:
if node not in path:
# 递归调用哈密尔顿函数
new_path = hamiltonian(graph, node, path)
if new_path:
return new_path
return None
# 测试示例
graph = {
'A': ['B', 'C', 'D'],
'B': ['A', 'C', 'D'],
'C': ['A', 'B', 'D'],
'D': ['A', 'B', 'C']
}
start_node = 'A'
result = hamiltonian(graph, start_node)
if result:
print("找到哈密尔顿回路:", result)
else:
print("未找到哈密尔顿回路")
```
这个示例中,我们使用了一个字典来表示图的邻接关系,其中键表示节点,值表示与该节点相邻的节点列表。`hamiltonian`函数使用深度优先搜索算法来递归查找哈密尔顿回路。如果找到了哈密尔顿回路,则返回路径;否则返回None。
阅读全文