图3-1哈密尔顿回路
此实例共有6种解,分别为:
回路1:1 2 6 5 3 4 回路2:1 2 6 5 4 3 回路3:1 3 2 6 5 4 回路4:1 3 4 5 6 2 回路5:1 4 3 5 6 2 回路6:1 4 5 6 2 3
(3) 数据结构
1> 在求解哈密尔顿回路问题时,需要用graph[][]二维数组存储边的邻接矩阵。
2> 数组x[]存储回路的解。 (4) 流程图
图3-2 哈密尔顿回路算法设计主函数流程图
6
图3-3 哈密尔顿回路算法设计hamiltonian()函数流程图
图3-4 哈密尔顿回路算法设计nextvalue()函数流程图
3.4 测试结果与分析
1、有哈密尔顿回路测试结果:
7
3
4
1 2 6 5
图3-5有哈密尔顿回路连通图边的创建
创建6个顶点,9条边的连通图。在提示的信息下输入顶点号,以便创建边。
8
图3-6有哈密尔顿回路连通图的解
如图3.5以及图3.6所示,创建有6个顶点,9条边的有哈密尔顿回路的连通图,则哈密尔顿回路的所有解共有6种。回溯算法是按照深度优先的原则对哈密尔顿回路连通图进行遍历,因此在一个具有哈密尔顿回路的连通图中会有多种不同的回路。
2、无哈密尔顿回路测试结果:
1 4 2 3
5
9

